忙了好长一段时间,最近终于有点空闲来写写了。记录下最近学习的Mysql主从同步和遇到的问题。
0x01 Mysql安装
安装的话这边就不详细说明了,安装方式很多种。后面我整了个通过ansible一键安装的脚本。
0x02 修改配置文件
在主从机器上的my.cnf配置文件中增加下面配置
[mysqld] server-id=1 ##每台机器上的ID需要不一样 log-bin=/opt/mysql/log/mysql-bin.log ###mysql的log路径 #忽略系统库 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema
0x03 主从同步
a、在主库创建Replication账号
$ mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'slave@2018'; $ mysql> SHOW MASTER STATUS; ##查看主库状态,主从复制需要file和Position两个参数
b、从库开启同步
$ mysql> CHANGE MASTER TO MASTER_HOST='master_host_name',MASTER_USER='repl',MASTER_PASSWORD='slave@2018',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=754; # MASTER_HOST 主库的IP # MASTER_USER 主库创建的Replication账号 # MASTER_PASSWORD 主库创建Replication密码 # MASTER_LOG_FILE 主库状态查出的File参数 # MASTER_LOG_POS 主库状态查出的Position参数 $ mysql> START SLAVE; ##开启从库同步 $ mysql> SHOW SLAVE STATUS\G; ##查看从库同步是否正常
0x04 主主同步
主主同步和主从同步的区别在机器即是主库也是从库,是双向的。
a、需要在两台机器上同时创建Replication账号
b、开启主主同步
Master1配置成Master2的从库 $ mysql> CHANGE MASTER TO MASTER_HOST='master2',MASTER_USER='repl',MASTER_PASSWORD='slave@2018',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=915; Master2配置成Master1的从库 $ mysql> CHANGE MASTER TO MASTER_HOST='master1',MASTER_USER='repl',MASTER_PASSWORD='slave@2018',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=754; $ mysql> START SLAVE; ##分别开启从库同步 $ mysql> SHOW SLAVE STATUS\G; ##查看从库同步是否正常
0x05 主从切换
当主库挂了之后,我们就必须把从库当成主库来使用。
$ mysql> STOP SLAVE; ##停止从库 $ mysql> SHOW PROCESSLIST; ##显示哪些线程正在运行 $ mysql> RESET MASTER; ##重置为主库

聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客
2018年7月30日 上午11:44 沙发
已阅
2018年8月24日 上午10:11 板凳
谢谢分享!!
2019年3月8日 下午4:56 地板
,意思是此类邮件是垃圾邮件,不要投递到收件箱。