1)規(guī)則:
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)創(chuàng)建Mysql互為主從:
1、在192.168.4.51 (db-51)安裝Mysql,創(chuàng)建同步復(fù)制用戶(用于192.168.4.52(db-52)主機(jī)同步數(shù)據(jù))
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開始設(shè)置mysql數(shù)據(jù)root用戶密碼11 > exit12 [root@db-51 mysql]# vim /etc/my.cnf13 validate_password_policy=014 validate_password_length=615 16 server_id=51 //設(shè)置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'; //創(chuàng)建主從復(fù)制用戶26 > show warnings;27 > show grants for repl@'%'; //查看用戶權(quán)限28 > flush table with read lock; //給服務(wù)加讀寫鎖,注意:關(guān)閉本連接session后就自動解鎖了。29 > show master status; //查看本機(jī)作為主庫狀態(tài)信息。
2、在192.168.4.52 (db-52)安裝Mysql ,設(shè)置同步主庫信息,同時創(chuàng)建同步復(fù)制用戶(用于192.168.4.51 (db-51)主機(jī)同步數(shù)據(jù))。
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; //重置從庫服務(wù),即清空slave服務(wù)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服務(wù)36 > show slave status\G37 > create user repl@'%' identified by '123456'; //創(chuàng)建主從復(fù)制用戶38 > grant replication slave on *.* to repl@'%'; //給用戶授權(quán)39 > show grants for repl@'%'; //查看用戶權(quán)限40 > show master status; //查看本機(jī)作為主庫信息。
3、在192.168.4.51 (db-51)上Mysql中設(shè)置同步主庫信息,創(chuàng)建表及記錄查看是否同步。
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從庫同步服務(wù)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中 創(chuàng)建表及記錄查看是否同步。(檢查操作)
[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; //復(fù)制表結(jié)構(gòu)> desc t2;> insert into t2 values("tom"),("poly");> select * from t2;
5、在192.168.4.51 (db-51)上Mysql中 創(chuàng)建表及記錄查看是否同步。(檢查操作)
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 //級聯(lián)服務(wù) 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 //級聯(lián)服務(wù) 14 15 16 17 注意:18 auto_increment_increment 控制列中的值的增量值,也就是步長。 19 auto_increment_offset 確定AUTO_INCREMENT列值的起點(diǎn),也就是初始值。 20 21 上述兩個變量:可以在全局以及session級別設(shè)置這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#