前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录下,mysql主从复制,主主同步

记录下,mysql主从复制,主主同步

作者头像
wo.
发布2021-06-15 14:22:13
1.6K0
发布2021-06-15 14:22:13
举报
文章被收录于专栏:了不得的专栏了不得的专栏

强烈建议

主从数据库必须要同一版本,不同版本可能会出现各种各样的错误 比如我刚开始就用了5.7和5.5的不同版本,结果出现了一大堆错误,而且还是解决不了的那种 最后不得不把5.5升级到了5.7,成功

先说下主从复制

或者叫主从同步。而主主同步就是两个主从同步,没什么多的东西

首先先修改下my.cnf配置文件
1. 主数据库

vi /etc/my.cnf 在 [mysqld] 下面添加3行

代码语言:javascript
复制
# 修改,必须保证每个服务器不一样。 这可能和循环同步有关。 防止进入死循环
server-id = 1
# 开启mysql的binlog日志,一般都有
log-bin = mysql-bin
# 只把哪些数据库的改动记录到binary日志中。 可以写上关注typecho数据库。可以写多行,表示关注多个数据库
binlog-do-db = typecho
# binlog-ignore-db 表示,需要忽略哪些数据库。但是我把它注释掉了,只是展示一下。
# binlog-ignore-db = mysql
# binlog-ignore-db = hello

# 下面两个用于在 双主(多主循环)互相备份。 
# 因为每台数据库服务器都可能在同一个表中插入数据,如果表有一个自动增长的主键,那么就会在多服务器上出现主键冲突。  
# 解决这个问题的办法就是让每个数据库的自增主键不连续。  
# 我假设需要将来可能需要10台服务器做备份, 所以auto-increment-increment 设为10.  
# 而 auto-increment-offset=1 表示这台服务器的序号。 从1开始, 不超过auto-increment-increment。
auto-increment-increment = 10
auto-increment-offset = 1 
2. 从数据库

vi /etc/my.cnf 在 [mysqld] 下面修改1行,添加3行

代码语言:javascript
复制
# 修改,必须保证每个服务器不一样。 这可能和循环同步有关。 防止进入死循环
server-id = 2
# 可以指定需要复制的数据库, 我使用了这个。
replicate-do-db = typecho
# 复制时需要排除的数据库,我这里注掉了。 演示一下。
# replicate-ignore-db = user
# 中继日志的名字。 前面说到了, 复制线程需要先把远程的变化拷贝到这个中继日志中, 在执行。
relay_log = mysqld-relay-bin
# 中继日志执行之后,这些变化是否需要计入自己的binarylog。 当你的B服务器需要作为另外一个服务器的主服务器的时候需要打开。  就是双主互相备份,或者多主循环备份。 我们这里需要, 所以打开。
log-slave-updates = ON

保存, 重启mysql。

之后是mysql命令行操作
1. 先在master数据库中建立用来同步的用户
代码语言:javascript
复制
grant replication slave on *.* to 'r_user'@'192.x.x.x' identified by 'password'
2. 在master数据库中,查看master状态,记下以下两个值
代码语言:javascript
复制
show master status;
3. 在slave数据库中,运行以下几条命令
代码语言:javascript
复制
stop slave;
reset slave;
# master_log_file 和 master_log_pos 的值分别为第2步中记录的值
change master to master_host='主数据库ip',master_user='r_user',master_password='密码',master_log_file='mysql-bin.000029',master_log_pos=154;
start slave;
4. 查看slave状态
代码语言:javascript
复制
show slave status;

Slave_IO_Running 和 Slave_SQL_Running 两个都为YES说明成功

主主同步

主主同步就是两台服务器互为主从,把上面的 主从配置 和 命令 反过来再做一遍 就可以了。

参考链接

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 强烈建议
  • 先说下主从复制
    • 首先先修改下my.cnf配置文件
      • 1. 主数据库
      • 2. 从数据库
    • 之后是mysql命令行操作
      • 1. 先在master数据库中建立用来同步的用户
      • 2. 在master数据库中,查看master状态,记下以下两个值
      • 3. 在slave数据库中,运行以下几条命令
      • 4. 查看slave状态
  • 主主同步
  • 参考链接
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档