简单的数据库集群系列(四)之主从到主主热备

博客涉及的相关软件仅供学习参考,不做任何商业用途以及无相关法律责任!如有不妥请联系QQ 3278688677 进行更正。

一、准备两台装有mysql的服务,这里准备了一台192.168.10.20和一台192.168.10.23

1.以23作为主服务器,20为从服务器为例。23数据库服务器可参考如下配置:

# vim /morik/sql/mysql_5.7.26/my.cnf

加入如下配置信息

server-id=23   #任意自然数n,只要保证两台MySQL主机不重复就可以了。
log-bin=mysql-bin   #开启二进制日志
auto_increment_increment=2   #自增长id一次长2可以不配置
auto_increment_offset=1          #自增长id从1开始长 可以不配置

2.登录23数据库(root20:登录名根据实际情况设置;专户密码:设置root20用户的密码)

# mysql -uroot -p

mysql> GRANT  REPLICATION SLAVE ON *.* TO 'root20'@'192.168.10.20' IDENTIFIED  BY '专户密码';
flush  privileges;                     
--建立一个专门用于复制数据的用户
mysql>flush  privileges;

mysql>show master status;   --查看主数据库二进制日志,在第3步中配置master_log_file和master_log_pos

3.登录20从数据库进行如下配置

# mysql -uroot -p

mysql>change master to 
mysql>master_host='192.168.10.23',
mysql>master_user='root20',
mysql>master_password='专户密码',
mysql>master_log_file='master-2.000004',
mysql>master_log_pos=154;

3.在20从服务器上开启主从热备

mysql>start  slave;
mysql>show slave status\G;

4.关闭重置主从关系,在20服务器上主动停止并重置。(配置出错可以执行此步骤)

# mysql -uroot -p你的密码
mysql>stop slave;
mysql>reset slave all;

二、把一步骤逆向配置一下就成了双主从也就是主主同步热备份了,具体步骤如下:

1.主数据库服务器20可参考如下配置:

# vim /morik/sql/mysql_5.7.26/my.cnf

 

加入如下配置信息

server-id=20   #任意自然数n,只要保证两台MySQL主机不重复就可以了。
log-bin=mysql-bin   #开启二进制日志
auto_increment_increment=2   #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=2   #起始值。一般填第n台主MySQL。此时为第一台主MySQL

2.登录20数据库(root23和专户密码根据实际情况设置)

# mysql -uroot -p

mysql> GRANT  REPLICATION SLAVE ON *.* TO 'root23'@'192.168.10.23' IDENTIFIED  BY '专户密码';
flush  privileges;                     
--建立一个专门用于复制数据的用户
mysql>flush  privileges;

mysql>show master status;   --查看主数据库二进制日志,在第3步中配置master_log_file和master_log_pos

3.登录23从数据库进行如下配置

# mysql -uroot -p

mysql>change master to 
mysql>master_host='192.168.10.20',
mysql>master_user='root23',
mysql>master_password='专户密码',
mysql>master_log_file='master-2.000002',
mysql>master_log_pos=154;

3.在23从服务器上开启主从热备

mysql>start  slave;
mysql>show slave status\G;

三、备注其他相关命令

//查看账号和ip配置是否正确
mysql>use mysql;
mysql>select user,host from user;
//查看Server_id
mysql>show variables like '%server_id%';
//防火墙
# sudo systemctl stop firewalld 临时关闭
# sudo systemctl disable firewalld ,然后reboot 永久关闭
# sudo systemctl status  firewalld 查看防火墙状态。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值