前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MySQL主主复制

MySQL主主复制

作者头像
运维开发王义杰
发布2023-08-16 20:07:23
发布2023-08-16 20:07:23
27400
代码可运行
举报
运行总次数:0
代码可运行

在同一个城市的两个数据中心(中心A和中心B)配置两个MySQL实例为双主复制模式是常见的设计。

MySQL双主复制的配置涉及到许多步骤,以下是一个基本的步骤指南:

1. 修改MySQL配置:你需要在每台MySQL服务器上的my.cnf文件中添加或修改一些配置选项。其中,最重要的配置选项可能是server-id,每台服务器的server-id必须是唯一的。例如:

代码语言:javascript
代码运行次数:0
复制
 [mysqld]
   server-id = 1
   log_bin = /var/log/mysql/mysql-bin.log
   binlog_do_db = yourdatabase

在另一台服务器上,使用不同的server-id:

代码语言:javascript
代码运行次数:0
复制
[mysqld]
   server-id = 2
   log_bin = /var/log/mysql/mysql-bin.log
   binlog_do_db = yourdatabase

然后,重启每台服务器上的MySQL服务。

2. 设置复制用户:在每台MySQL服务器上,你需要创建一个用于复制的用户,并授予REPLICATION SLAVE权限。例如:

代码语言:javascript
代码运行次数:0
复制
 CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
   GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

3. 配置主主复制:在服务器1上,查看二进制日志文件的状态:

代码语言:javascript
代码运行次数:0
复制
 SHOW MASTER STATUS;

记录下File和Position的值。然后在服务器2上,执行以下命令:

代码语言:javascript
代码运行次数:0
复制
CHANGE MASTER TO MASTER_HOST='IP_of_server1', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='File', MASTER_LOG_POS=Position;

在服务器2上重复这个过程,但是这次要将服务器1配置为服务器2的复制服务器。

代码语言:javascript
代码运行次数:0
复制
CHANGE MASTER TO MASTER_HOST='IP_of_server2', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='File', MASTER_LOG_POS=Position;

4. 启动复制:在每台服务器上,使用以下命令启动复制:

代码语言:javascript
代码运行次数:0
复制
 START SLAVE;

这样就完成了MySQL双主复制的配置。你可以通过在一个服务器上修改数据,然后在另一个服务器上查看这个修改是否被复制,来测试复制是否成功。

请注意,在生产环境中使用双主复制需要特别注意数据一致性问题。为了避免冲突,你可能需要使用某种方式将写操作分区,例如,让一部分应用只写入一台主机,另一部分应用只写入另一台主机。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档