Linux下Mysql主从、主主同步配置

忙了好长一段时间,最近终于有点空闲来写写了。记录下最近学习的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 '[email protected]';

$ mysql> SHOW MASTER STATUS;  ##查看主库状态,主从复制需要file和Position两个参数

b、从库开启同步

$ mysql> CHANGE MASTER TO MASTER_HOST='master_host_name',MASTER_USER='repl',MASTER_PASSWORD='[email protected]',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='[email protected]',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=915;

Master2配置成Master1的从库

$ mysql> CHANGE MASTER TO MASTER_HOST='master1',MASTER_USER='repl',MASTER_PASSWORD='[email protected]',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;  ##重置为主库

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

  1. avatar 广州网站建设 4

    已阅

  2. avatar 暮色 0

    谢谢分享!!