打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Mysql互为主从 keepalived实现高可用性(1)

1)规则:

    1) db-51      192.168.4.51       Mysql 5.7

    2) db-52    192.168.4.52      Mysql 5.7 

    vip: 192.168.4.50

 

2)创建Mysql互为主从:

  1、在192.168.4.51 (db-51)安装Mysql,创建同步复制用户(用于192.168.4.52(db-52)主机同步数据)

 1 [root@db-51 ~]#tar -xf mysql-5.7.17.tar -C mysql 2 [root@db-51 ~]#yum -y install net-tools perl-Data-Dumper perl-JSON 3 [root@db-51 mysql]#cd mysql 4 [root@db-51 mysql]#rpm -Uvh mysql-community-*.rpm 5 [root@db-51 mysql]#systemctl start mysqld 6 [root@db-51 mysql]#grep password /var/log/mysqld.log 7 [root@db-51 mysql]#mysql -uroot -p'y8glj!u=ldQ%' 8 > set global validate_password_policy=0; 9 > set global validate_password_length=6;10 > set password='123456';        //5.7开始设置mysql数据root用户密码11 > exit12 [root@db-51 mysql]# vim /etc/my.cnf13 validate_password_policy=014 validate_password_length=615 16 server_id=51                        //设置mysql的server id17 log_bin=/var/lib/mysql/mysql-master-5118 binlog_format=mixed19 20 21 [root@db-51 mysql]#systemctl stop firewalld22 [root@db-51 mysql]#systemctl disable firewalld23 [root@db-51 mysql]#systemctl restart mysqld24 [root@db-51 mysql]#mysql -uroot -p25 > grant replication slave on *.* to repl@'%' identified by '123456';      //创建主从复制用户26 > show warnings;27 > show grants for repl@'%';      //查看用户权限28 > flush table with read lock;        //给服务加读写锁,注意:关闭本连接session后就自动解锁了。29 > show master status;          //查看本机作为主库状态信息。

  2、在192.168.4.52 (db-52)安装Mysql ,设置同步主库信息,同时创建同步复制用户(用于192.168.4.51 (db-51)主机同步数据)。

 1 [root@db-52 ~]#tar -xf mysql-5.7.17.tar -C mysql 2 [root@db-52 ~]# yum -y install net-tools perl-Data-Dumper perl-JSON 3 [root@db-52 ~]#cd mysql 4 [root@db-52 mysql]#rpm -Uvh mysql-community-*.rpm 5 [root@db-52 mysql]#cd ~ 6 [root@db-52 ~]#systemctl start mysqld 7 [root@db-52 ~]#grep password /var/log/mysqld.log 8 [root@db-52 ~]#mysql -uroot -p'k:sv!HWtV7d>' 9 > set global validate_password_policy=0;10 > set global validate_password_length=6;11 > set password='123456';        //5.7开始12 > exit13 [root@db-52 ~]#vim /etc/my.cnf14 [mysqld]15 validate_password_policy=016 validate_password_length=617 18 server_id=5219 log_bin=/var/lib/mysql/mysql-master-5220 binlog_format=mixed21 22 [root@db-52 ~]#systemctl stop firewalld23 [root@db-52 ~]#systemctl disable firewalld24 [root@db-52 ~]#systemctl restart mysqld25 [root@db-52 ~]#mysql -uroot -p26 > reset slave;                       //重置从库服务,即清空slave服务27 > show slave status;28 > change master to                    //配置主库29     -> master_host='192.168.4.51',30     -> master_user='repl',31     -> master_password='123456',32     -> master_log_file='mysql-master-51.000001',33     -> master_log_pos=43734     -> ;35 > start slave;         //启动slave服务36 > show slave status\G37 > create user repl@'%' identified by '123456';      //创建主从复制用户38 > grant replication slave on *.* to  repl@'%';      //给用户授权39 > show grants for  repl@'%';                 //查看用户权限40 > show master status;                     //查看本机作为主库信息。

  3、在192.168.4.51 (db-51)上Mysql中设置同步主库信息,创建表及记录查看是否同步。

 1 > unlock tables;        //释放锁 2 > reset slave          //重置slave 3 > show slave status\G 4 > change master to 5     -> master_host='192.168.4.52', 6     -> master_user='repl', 7     -> master_password='123456', 8     -> master_log_file='mysql-master-52.000001', 9     -> master_log_pos=595;10 > start slave;          //开启slave从库同步服务11 > show slave status\G12 > show databases;13 > create database mygame;14 > use mygame15 > create table t1(16     -> id int(4) not null auto_increment primary key,17     -> name char(10)18     -> );19 > insert into t1(name) values("Tom"),("Jave");

  4、在192.168.4.52 (db-52)上Mysql中 创建表及记录查看是否同步。(检查操作)

[root@db-52 ~]#mysql -uroot -p> show databases;> use mygame> insert into t1(name) values("Bom"),("Baly");> select * from t1;> create table t2 select name from t1 where false;            //复制表结构> desc t2;> insert into t2 values("tom"),("poly");> select * from t2;

  5、在192.168.4.51 (db-51)上Mysql中 创建表及记录查看是否同步。(检查操作)

1 [root@db-51 ~]mysql -uroot -p2 > show databases;3 > use mygame4 > desc t2;5 > insert into t2 values("tom"),("Jam");                6 > select * from t2;

 

注1:让互为主从库,有各自的自增变量:

 1 #主库1配置my.cnf: 2 [root@db-1 ~]#vim /etc/my.cnf 3 auto_increment_increment = 2 4 auto_increment_offset = 2 5 log-bin =/mysql_multi_case/3306/mysqld-bin 6 log-slave-updates = 1                    //级联服务 7  8 主库2配置my.cnf:  9 [root@db-2 ~]#vim /etc/my.cnf10 auto_increment_increment = 211 auto_increment_offset = 112 log-bin =/mysql_multi_case/3307/mysqld-bin13 log-slave-updates = 1                    //级联服务     14 15 16 17 注意:18 auto_increment_increment      控制列中的值的增量值,也就是步长。  19 auto_increment_offset         确定AUTO_INCREMENT列值的起点,也就是初始值。  20 21 上述两个变量:可以在全局以及session级别设置这2个变量  。

 

 

参考:

https://blog.51cto.com/superpcm/2094958
https://blog.51cto.com/superpcm/2095731
https://www.cnblogs.com/DBArtist/p/auto_increment.html
https://blog.csdn.net/leshami/article/details/39779509#

来源:https://www.icode9.com/content-2-517601.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Mysql双主配置 GTID
【自动保存】MySQL...
实战 centos6.5下mysql
2.【详细到哭系列】keepalived配置,实现zabbix主备的切换
mysql双机热备
轻松搭建MySQL主从复制、读写分离(双机热备)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服