记一次MySQL(5.7版本)数据库的主从同步和备份
我遇到的问题
我先后在BAT三大云服务器商购买了学生机,配置如下
- 百度云2核/4G
- 阿里云1核/2G
- 腾讯云1核/2G
我的解决方案
由于我不知道百度云的续费规则,导致买了2核/4G的服务器之后以为像阿里和腾讯的一样可以原价续费,就把我的个人博客相关的东西都部署在了百度云上面。然后我就想着快发工资了,看看怎么续费百度云,结果发现这款学生机只有一个月的使用时间,所以,我不得不另寻他法。在确定了阿里云和腾讯云是支持符合学生身份期限内可以原价续费之后,我决定把博客迁移到这两台机器上。为了能防止其中一个突然到期,来不及迁移,或者说为了避免再次迁移的麻烦,我决定在阿里云和腾讯云上各自部署一个mysql,做主从。
我预期的架构
subgraph 客户
客户-->浏览器
end
subgraph 阿里云
浏览器-->nginx
nginx-->博客实例1
博客实例1-->主MySQL
博客实例1-->本地文件系统1
end
subgraph 腾讯云
主MySQL-->从MySQL
nginx-->博客实例2
博客实例2-->主MySQL
博客实例2-->本地文件系统2(挂载本地文件系统1)
end
其中两个主机共享一个保存博客数据的文件,通过nfs挂载的方式共享同一文件夹,访问时通过nginx做负载均衡。
# 服务端客户端都执行
yum install rpc-bind
yum install nfs-utils
# 服务端
vim /etc/exports
/root/.halo (rw,no_root_squash)
# 客户端
mount -t nfs 101.132.174.XX:/root/.halo /root/.halo
然后我发现打好的博客jar包里会在数据库中存储ip信息,导致两个博客打开的内容都指向一个ip,从而产生错误,无法完成这个架构。又懒得从新修改打包等等,故而放弃了这个架构。
最终采用的架构
subgraph 客户
客户-->浏览器
end
subgraph 阿里云
浏览器-->博客实例
博客实例-->主MySQL
博客实例-->本地文件系统
end
subgraph 腾讯云
主MySQL-->从MySQL
end
打包/docker/mysql/data下的数据复制并解压到腾讯云和阿里云的/docker/mysql/data下
阿里云主my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
log-bin=mysql-bin # 开启binlog
binlog-format=ROW # 选择ROW模式
server_id=1
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
腾讯云从my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
log-bin=mysql-bin # 开启binlog
binlog-format=ROW # 选择ROW模式
server_id=2 # server_id不要重复
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
在主上查询当前mysql状态:
show master status;
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
|---|---|---|---|---|
| mysql-bin.000004 | 154 |
进入从容器中登录mysql:
CHANGE MASTER TO MASTER_HOST='101.132.174.XX',MASTER_USER='root',MASTER_PASSWORD='XXX',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=154;
start slave;
show slave status\G;

至此,完成了我的博客系统迁移工作。
遇到的问题
- mysql uuid 重复,进入其中一个数据库,删除掉auto.cnf再重启mysql就行了。
- 我用的mysql是docker挂载的方式,具体如何在docker中跑mysql和挂载文件,在我的另一篇文章里有详细描述。点此跳转
记一次MySQL(5.7版本)数据库的主从同步和备份的更多相关文章
- InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能
InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync repl ...
- mysql数据库配置主从同步
MySQL主从同步的作用 .可以作为一种备份机制,相当于热备份 .可以用来做读写分离,均衡数据库负载 MySQL主从同步的步骤 一.准备操作 .主从数据库版本一致,建议版本5.5以上 .主从数据库数据 ...
- MySQL数据库的主从同步
什么要进行数据库的主从同步? 防止单点故障造成的数据丢失 主从复制的原理 MySQL从数据库开启I/O线程,向主服务器发送请求数据同步(获取二进制日志) MySQL数据库开启I/O线程回应从数据库 从 ...
- mysql数据库的主从同步,实现读写分离 g
https://blog.csdn.net/qq_15092079/article/details/81672920 前言 1 分别在两台centos 7系统上安装mysql 5.7 2 master ...
- MySQL数据库的主从同步复制配置
一.主从同步机制原理 MYSQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态), ...
- mysql数据库的主从同步,实现读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别 ...
- Mysql安装多版本数据库
1.下载对应版本压缩包 2.解压缩文件 3.到解压缩文件,添加my.ini文件,修改相关的配置,如端口,文件路径等 # For advice on how to change settings ple ...
- Docker搭建mysql:5.7版本数据库
搭建MySQL: 1.启动测试mysql,拷贝容器内配置文件到宿主机 mkdr -P /server/docker/mysql/{data,conf} docker run -e MYSQL_ROOT ...
- MySQL数据库的主从同步实现及应用
>>主从同步机制及应用 读写分离(Read/Write Splitting)让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),从数据库处理SELECT查询操作 ...
随机推荐
- JavaWeb 补充(Cookie&JSP&Session)
1. 会话技术 1. Cookie 2. Session 2. JSP:入门学习 会话技术 1. 会话:一次会话中包含多次请求和响应. * 一次会话:浏览器第一次给服务器资源发 ...
- Mysql事务原理
一.什么是事务 事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作:这些操作作为一个整体一起向系统提交,要么都执行.要么都不执行:事务是一组不可再分割的操作集合(工作逻辑单元): ...
- Molar mass UVA - 1586
An organic compound is any member of a large class of chemical compounds whose molecules contain c ...
- TLS Poison - When TLS Hack you
0x00 前言 本次学习的是2020 Blackhat 的一篇文章When TLS Hacks you,简单来说,作者提出了一种新的SSRF攻击思路:利用DNS重绑定和TLS协议的会话恢复进行攻击.具 ...
- 开坑:mysql相关问题
一. 先过滤后连表和先连表后在mysql中选择的哪一种? 二. left join 和inner join使用场景有什么区别? 三. 第二个问题的衍生问题:left join中where 条件使用对n ...
- 浅析 Find My 原理
什么是 Find My 网络? 2021年4月21日的苹果发布会发布了一款新的产品:AirTag.使用的是 BLE + UWB 的技术.BLE 和 Find My 网络为 AirTag 提供了 GPS ...
- B - Tempter of the Bone(DFS+剪枝)
The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it u ...
- 限制pyqt5应用程序 只允许打开一次
起因 pyqt5程序创建桌面快捷方式后,多次单击图标 会打开多个UI界面,这种情况肯定是不允许的! 解决 if __name__ == '__main__': try: app = QtWidgets ...
- hdu5105给你一个方程,让你求极值(直接暴力)
题意: 给你一个方程f[x] = abss(a * x * x * x + b * x * x + c * x + d); 然后给你各个参数还有x(-100<x<100)的取值 ...
- hdu1530 最大团简单题目
题意: 给你一个无向图,让你找到这个图里面的最大团是多少. 思路: 最大图案是NP问题,直接暴力搜索,如果当前的这个点可以加入当前最大团,那么就选择加入或者舍去,如果不能加入, ...