2018-08-26 mysql 主从

mysql 主从原理:两台机器通过IO线程,将master的binlog日志导入slave,slave通过自身的SQL线程,将binglog日志导入自身的数据库,实现主从同步。

进入 mysql 配置文件 /etc/my.com 添加

log-bin、server-id=1   将二进制文件位置打开

gtid_mode=ON、enforce_gtid_consistency=1 开启自动寻找位置

重启mysqld

在mysql内创建测试用户

grant  replication slave on *.* to 'rep'@'location'  identified by  'mysql密码';

flush privileges;刷新

退出。

进行备份:mysqldump -p 'mysql密码' --all-databases  --single-transaction  --master-data=2  --flush-logs > `date +%F`-mysql-all.sql     (默认存放在/var/bin/mysql.log) 生成二进制文件并改名为当前时间。将其拷贝到另一台机器。

切换到另一台机器

同样进入配置文件添加那四行并重启。

用创建的用户登陆mysql确定成功,使用root用户登陆mysql,

set sql_log_bin=0;、source  二进制文件(记的带上路径)

change master to

master_host='主机IP(或解析后的名字)'、master_user='rep(也就是你复制出来的用户)'、

master_password='复制用户时的密码'、master_auto_position=1;

start slave (开启从服务)、show slave status\G;查看状态。一般来说这就可以了。IO、SQL两个都为YES。

2018-08-26 mysql 主从_第1张图片

这只是一主一从,如果互为主从的话,在slave上重复以上步骤,不需要再拷贝二进制文件也不需要set和source。

如果IO为ON或Connecting,那么你需要复制新的二进制文件。将master的mysql  stop,删除  /var/lib/mysql/  (默认存放二进制文件)内所有文件,然后start  mysql,mysqldump新的文件到slave。stop slave;start slave;show slave status\G

如果SQL为ON

2018-08-26 mysql 主从_第2张图片

这招就可以,亲身试验过。

你可能感兴趣的:(2018-08-26 mysql 主从)