主库:
- 修改配置文件
'binlog-do-db = test' 仅记录'test'库,用来做数据同步。
'binlog-ignore-db' 仅不记录'mysql',其他库数据都可以同步。
数据库同步规则表中互有冲突,建议仅使用一种规则配置多行
vim /etc/mysql
[mysqld]
server-id = 10
log-bin=mysql-bin
binlog-do-db = test
binlog-ignore-db = mysql
- 重启mysql进程
systemctl restart mysqld
- 创建同步帐号
用户名:slave_user
帐号可用范围:10.10.10.%
密码:123456
mysql -uroot -p -e "GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'slave_user'@'10.10.10.%' IDENTIFIED BY '123456';"
- 检查服务器配置及运行状态
记录'File'以及'Position'的值,从库配置同步节点需用。
mysql -uroot -p -e "show variables like 'server_id'"
mysql -uroot -p -e "show master status"
从库:
- 修改配置文件
每一台主从服务器的'server-id'都不可以重复
'replicate-do-db = test' 仅同步'test'库
'replicate-ignore-db = mysql' 仅步同步'mysql'库
'replicate-wild-do-table = test.%' 仅同步'test'库中所有表(如需指定表,将通配符'%'更换成表名称)。
'replicate-wild-ignore-table = mysql.%' 仅不同步'mysql'库中所有表(如需指定表,将通配符'%'更换成表名称)。
'slave-skip-errors = all' 同步过程中,忽略所有错误。
数据库同步规则表中互有冲突,建议仅使用一种规则配置多行
vim /etc/mysql
[mysqld]
server-id = 11
log-bin = mysql-bin
replicate-do-db = test
replicate-ignore-db = mysql
replicate-wild-do-table = test.%
replicate-wild-ignore-table = mysql.%
slave-skip-errors = all
- 重启mysql进程
systemctl restart mysqld
- 创建从库与主库的同步关系
mysql -uroot -p
> stop slave ;
> change master to master_host='10.10.10.10',master_port=3306,master_user='slave_user',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=154;
> start slave ;
- 检查从库是否同步成功
'Slave_IO_Running: Yes' (负责与主库同步IO通信)
'Slave_SQL_Running: Yes' (负责自身slave mysql进程)
mysql -uroot -p -e "show slave status G"