我的测试环境是mysql+ Mariadb数据库,我这里拿2台服务器来做测试 提示:两台服务器的数据库版本要相同 修改配置文件(默认是my.cnf)
注意:下面所提到的参数全部都是在[mysqld]节点下添加
像主从同步一样,在这个文件的[mysqld]节点下添加参数,两台服务器都要添加,注意server-id不要相同
1 2 3 4 5
| server-id=1 log-bin=mysql-bin auto_increment_offset = 1 log-slave-updates = true
|
1 2 3 4 5 6
| server-id=2 log-bin=mysql-bin auto_increment_offset = 2 auto_increment_increment = 2 log-slave-updates = true
|
修改后的配置文件如下图:
接下来就简单了,跟主从同步的操作基本上一致了,首先是添加用来同步用的账号密码.在A、B两台服务器上添加相同的账号密码
1 2 3
| mysql -uroot -p123456 grant replicatiON slave on *.* to repl@'%' identified by '123456'; exit
|
添加完毕账号后,重启数据库服务systemctl restart mysqld
重启完毕后,重新登录两台服务器的数据库,查看日志文件的信息并记录File和Position信息
1 2
| mysql -uroot -p123456 show master status;
|
因为测试两个服务器都是全新安装的数据库,所以这些信息都是一样的.接下来在配置同步服务,首先在A服务器配置
1 2 3 4
| change master to master_host='B服务器的IP',master_port=3306,master_user='B服务器的数据库账号repl',master_password='B服务器的数据库密码123456',master_log_file='mysql-bin.000001',master_log_pos=313 log_file就是主服务器File的值,这里要填写B服务器查询出来的值 master_log_pos就是主服务器Position的值,这里要填写B服务器查询出来的值
|
1 2 3 4
| change master to master_host='A服务器的IP',master_port=3306,master_user='A服务器的数据库账号repl',master_password='A服务器的数据库密码123456',master_log_file='mysql-bin.000001',master_log_pos=313;
|
然后在A、B服务器上执行start slave;
开启同步在执行show slave status\G;
查看同步状态
当看到以下两个参数是YES就说明配置已经生效
1 2
| Slave_IO_Running: Yes Slave_SQL_Running: Yes
|
剩下的自己可以创建个数据库测试一下