mysql 主从双向同步配置
mysql 主从双向同步配置
指尖白描 发表于9个月前
mysql 主从双向同步配置
  • 发表于 9个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 两台mysql服务器,互为主从服务器,无论从那台服务器写入数据,另外一台都会同步。并且避免主键冲突。

“生产环境为centos 7 ,mariadb 数据库”

A mysql服务器 ip 为192.168.0.217,B mysql服务器 ip 为192.168.0.216,

全局操作:

systemctl start mariadb  # 开启服务
systemctl restart mariadb.service #重启数据库服务
systemctl status mariadb.service #查看服务状态

安装初始化完成后没有密码,需要设置密码

登陆终端mysqladmin -u root -p password 12345678  #123456 是新密码,回车后出现 Enter password 输入旧密码,如果没有,直接回车。

mysql -u root -p #  登陆数据库
show databases;  # 查看数据库

登陆数据库 执行

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; 或

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

# 允许远程连接数据库
flush privileges;  #刷新数据库权限表

注意:

如果数据库里有数据,请登陆mariadb执行 flush tables with read lock;,意在主数据库只能读不能写,有助数据库备份,等备份完成后执行unlock tables;解锁,然后将备份还原到从数据库上。(如果是空库,这条省略)

在 服务器A上操作
修改mariadb配置文件vi /etc/my.cnf,在[mysqld]中添加几个参数

bind-address = 192.168.0.217  #本机ip
server_id = 1
log-bin=/var/lib/mysql/master-bin  # 这个两台顺序要相同
relay-log=/var/lib/mysql/relay-bin  # 这个两台顺序要相同(若只是主从A为主B为从,这条语句不用增加)
auto_increment_offset = 1  # 主键从1开始
auto_increment_increment = 2 #每次自增为2
slave-skip-errors=all  #跳过所有错误进行配置

修改配置文件后需要重启mysql服务;

在 服务器B上操作
修改mariadb配置文件vi /etc/my.cnf,在[mysqld]中添加几个参数

bind-address = 192.168.0.216  #本机ip
server_id = 2
log-bin=/var/lib/mysql/master-bin  # 这个两台顺序要相同(若只是主从A为主B为从,这条语句不用增加)
relay-log=/var/lib/mysql/relay-bin  # 这个两台顺序要相同
auto_increment_offset = 2  # 主键从2开始
auto_increment_increment = 2 #每次自增为2
slave-skip-errors=all  #跳过所有错误进行配置

修改配置文件后需要重启mysql服务;

分别在服务器A、B上登陆数据库执行命令show master status;,记住File和Position的部分,后面会用到。

在服务器A登陆数据库执行:

stop slave;

reset slave;

change master to master_host='192.168.0.216',master_user='root',master_password='123456',

master_log_file='master-bin.000005',MASTER_LOG_POS=245; #file pos 为刚才查到的值

start slave;

用show slave status\G; 查看从服务器状态,其中Slave_IO_Running和Slave_SQL_Running必须为Yes,如果不是,需要根据提示的错误修改。

在服务器B登陆数据库执行:

stop slave;

reset slave;

change master to master_host='192.168.0.217',master_user='root',master_password='123456',

master_log_file='master-bin.000001',MASTER_LOG_POS=112; #file pos 为刚才查到的值

start slave;

用show slave status\G; 查看从服务器状态,其中Slave_IO_Running和Slave_SQL_Running必须为Yes,如果不是,需要根据提示的错误修改。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 1
码字总数 735
×
指尖白描
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: