mysql 5.6配置双主同步

2023-08-10 16:25:48 浏览数 (1)

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_RunningSlave_SQL_Running 的值应为 'Yes'。

以上就是配置 MySQL 5.6 双主同步的步骤。请注意,双主同步需要小心处理,因为它可能导致数据不一致的问题,如双重写入。因此,建议只在熟悉这个概念的情况下使用它,并确保有恰当的冲突解决策略。

0 人点赞