目标
搭建两台MySQL服务器,实现主主复制做双机热备份,宿主机Linux MYSQL和Linux上用docker安装一个MySQL实现主主复制
环境
主数据库: 192.168.1.52:3306
主数据库: 192.168.1.52:13306
mysql版本都是5.6.49, for linux
数据库准备
- 保证两个数据库中的库和数据是一致的
要点
主主复制中必须要解决的事情就是自增主键的问题。如果服务器1的数据库表1主键id增加到10了,此时二进制数据还没到达服务器2,如果服务器2对应的表恰好要插入数据,那么新数据主键id也是10,那就乱套了。
修改配置文件
1.修改 主机1的配置文件
vim /etc/my.cnf
# 主从复制 #
log-bin=mysql-bin
server-id=1
replicate-do-db=test #要同步多个数据库,就多加几个replicate-db-db=数据库名
#binlog-ignore-db=mysql //要忽略的数据库
innodb_flush_log_at_trx_commit=1
sync_binlog=1
auto_increment_increment=2 #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=1 #起始值。一般填第n台主MySQL。此时为第一台主MySQL
重启主机1的mysql
systemctl restart mysql
2.修改 docker mysql 的配置文件
我在 /home/xxxx/Desktop/data/docker/mysql/conf 下创建了docker.cnf
vim /home/xxxx/Desktop/data/docker/mysql/conf/docker.cnf
server-id=2
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=2
replicate-do-db=test
重启 docker mysql
docker restart mysql
或者启动
docker run -d --name mysql -p 13306:3306 -v /home/xxxx/Desktop/data/do