MySQL主-中继-从配置(Master-Slave replay-Slave)
环境概况:
master主(192.168.3.63)---->replay中继(192.168.3.64)---->slave从(192.168.3.65)
同步账号Master 同步账号replay 同步账号slave
0、预先处理,导出需要同步数据库数据:
mysqldump -uroot -p761479629@Lt -B HA > HA.sql
其中-B表示包含数据库创建语句预计其他创建语句。
主配置:
1、修改my.cnf配置
必须配置
server-id=1
log_bin=mysql-bin-master
可选配置(选择同步与不同步的数据库)
binlog-do-db=HA
binlog-ignore-db=mysql
binlog_ignore_db=information_schema
sync-binlog=1
binlog-format=row
2、创建同步账户master
grant replication slave on *.* to 'master'@'192.168.3.64' identified by '761479629Lt';
flush privileges;
提示弱密码处理方法:
set global validate_password_policy=0;
set global validate_password_length=4;
*可选*关闭安全策略
5.7以上版本 关闭密码安全策略插件:在my.cnf添加 validate-password=off 重启mysql。
3、重启MySQL,查看主服务器当前二进制日志名和偏移量
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin-master.000001 | 4406 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.04 sec)
配置完成后最后测试:
4、数据库测试,写几条数据测试下,能同步就可以了
中继服务器:
1、修改my.cnf配置
必须配置
server-id=2
log_bin=mysql-bin-replay
log-slave-updates=1
binlog-format=row
2、创建同步账户replay
grant replication slave on *.* to 'replay'@'192.168.3.65' identified by '761479629Lt';
flush privileges;
提示弱密码处理方法:
set global validate_password_policy=0;
set global validate_password_length=4;
*可选*关闭安全策略
5.7以上版本 关闭密码安全策略插件:在my.cnf添加 validate-password=off 重启mysql。
3、设置从同步参数
stop slave;
change master to master_host='192.168.3.63',master_user='master',master_password='761479629Lt',master_log_file='mysql-bin-master.000001',master_log_pos=4406
可选参数:
master_log_file='mysql-bin-master.000001',
master_log_pos=4406
start slave;
4、测试replay同步服务器是否能登录主服务器
mysql -umaster -p761479629Lt -h 192.168.3.63
5、启动slave进程,查看同步状态
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
查看同步状态:
show slave status\G;
确保这两项正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
从服务器配置:
1、修改my.cnf配置
必须配置
log_bin=mysql-bin-slave
server-id=3
binlog-format=row
2、设置从同步参数
stop slave;
change master to master_host='192.168.3.64',master_user='replay',master_password='761479629Lt',master_log_file='mysql-bin-replay.000001',master_log_pos=4406
可选参数:
master_log_file='mysql-bin-master.000001',
master_log_pos=4406
3、测试slave服务器是否能登录replay服务器
mysql -ureplay -p761479629Lt -h 192.168.3.64
4、启动slave进程,查看同步状态
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
查看同步状态:
show slave status\G;
确保这两项正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
通过这个选项可以不让主库将打开这个选项或关闭连接前的SQL语句写入binlog。
set sql_log_bin=off;
mysql>alter table aaa add column xxx int default 1 after yyy;
set sql_log_bin=on; 在开启