mysql8.0已经发布几年了,现在还有使用mysql5.6的情况,今天我们来温故一下mysql5.6的双主配置, 配置 MySQL 5.6 双主同步的步骤如下:
请注意,你需要在两个服务器上都执行这些步骤。我们将这两个服务器称为 Master1 和 Master2。
1.配置 my.cnf 文件
打开 /etc/my.cnf 文件并添加以下配置:
在 Master1 上:
代码语言:javascript复制[mysqld]
server_id=1
log_bin=mysql-bin
replicate-do-db=your_database
auto_increment_increment = 2
auto_increment_offset = 1
在 Master2 上:
代码语言:javascript复制[mysqld]
server_id=2
log_bin=mysql-bin
replicate-do-db=your_database
auto_increment_increment = 2
auto_increment_offset = 2
注意:你应该将 your_database
替换为你想要同步的数据库名称。
2.重启 MySQL 服务
使用以下命令重启 MySQL 服务:
代码语言:javascript复制sudo service mysql restart
3. 创建复制用户
在 Master1 和 Master2 上都需要创建复制用户。在 MySQL 交互式命令行中输入:
代码语言:javascript复制CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
注意:你应该将 'password' 替换为你想要为复制用户设置的密码。
4. 在每个主机上配置复制
在 Master1 上执行
代码语言:javascript复制CHANGE MASTER TO MASTER_HOST='master2_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 0;
在 Master2 上执行:
代码语言:javascript复制CHANGE MASTER TO MASTER_HOST='master1_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 0;
注意:你应该将 'password' 替换为你为复制用户设置的密码,并将 'master1_ip' 和 'master2_ip' 替换为相应服务器的 IP 地址。
5. 启动复制
在每个主机上执行以下命令来开始复制:
代码语言:javascript复制START SLAVE;
6. 检查复制状态
在每个主机上执行以下命令查看复制状态:
代码语言:javascript复制SHOW SLAVE STATUSG;
如果配置正确,Slave_IO_Running
和 Slave_SQL_Running
的值应为 'Yes'。
以上就是配置 MySQL 5.6 双主同步的步骤。请注意,双主同步需要小心处理,因为它可能导致数据不一致的问题,如双重写入。因此,建议只在熟悉这个概念的情况下使用它,并确保有恰当的冲突解决策略。