MySQL5.7.25数据库主主配置
- 准备工作
- 俩台mysql数据库
- 主主配置(两台数据库都执行)
mysql> create user 'master'@'192.168.14.%' identified by '123'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'master'@'192.168.14.%';
- 修改两台MYSQL的配置文件
mysql01主机my.cnf修改如下:
Mysql02主机my.cnf修改如下:server-id=1 #给数据库服务的唯一标识 binlog-do-db = spcdb #要同步的数据库 relay_log_recovery #宕机后如relay_log损坏,重新从master上获取日志 log-slave-updates #更新自己的log日志,主主必须配置 slave-skip-errors=all #跳过同步错误,否则将出现终止 auto_increment_offset = 1 #主主同步防止自增字段冲突,每个master分别为1、2 auto_increment_increment = 2 #主主同步防止自增,有几台master就设置为几
server-id=2 #给数据库服务的唯一标识 binlog-do-db = spcdb #要同步的数据库 relay_log_recovery #宕机后如relay_log损坏,重新从master上获取日志 log-slave-updates #更新自己的log日志,主主必须配置 slave-skip-errors=all #跳过同步错误,否则将出现终止 auto_increment_offset = 2 #主主同步防止自增字段冲突,每个master分别为1、2 auto_increment_increment = 2 #主主同步防止自增,有几台master就设置为几
- 设置好后,分别重启mysql服务
- 开启同步
登录mysql01 mysql控制台,开启同步,命令如下:(master_host为另外一台主服务器IP)
登录master2 mysql控制台,开启同步,命令如下:mysql> change master to master_host='192.168.14.26',master_port=3306,master_user='master',master_password='123',master_log_file=' mysql-bin.000004', master_log_pos=154; mysql> start slave; 说明:master_log_file='mysql-bin.000011'参数和master_log_pos=623参数,需要查看mysql02上mysql的内容,命令为 mysql> show master status;
mysql> change master to master_host='192.168.14.25',master_port=3306,master_user='master',master_password='123',master_log_file='mysql-bin.000005', master_log_pos=107; mysql> start slave; 说明:master_log_file='mysql-bin.000011'参数和master_log_pos=623参数,需要查看mysql01上mysql的内容,命令为 mysql> show master status;
- 验证主主同步配置成功,分别在两台master进行数据库写操作,看看是否互相同步数据。如果没有同步成功,检查以上配置。主主同步的原理就是互为主从同步,查看maste的ip是否配置正确,查看同步配置使用命令为show slave status \G。