在自己的兩臺虛擬機(jī)192.168.152.130,192.168.152.132進(jìn)行配置
部署環(huán)境:centos7.8、mysql5.7.31,兩臺服務(wù)器的3306端口可以互相telnet通
安裝可以參考另一篇文章:linux下jdk+mysql安裝部署+nginx - 簡書
1.修改配置文件
在主機(jī)130上,修改mysql的配置文件 #vim /etc/my.cnf
添加如下配置
server-id=1???#服務(wù)器id?(主從必須不一樣)
log-bin=mysql-bin???#打開日志(主機(jī)需要打開)
binlog-do-db=db1??#要給從機(jī)同步的庫
binlog-ignore-db=mysql???#不給從機(jī)同步的庫(多個(gè)寫多行)
binlog-ignore-db=information_schema
expire_logs_days=7????#自動清理?7?天前的log文件,可根據(jù)需要修改
在主機(jī)132上,修改mysql的配置文件 #vim /etc/my.cnf
添加如下配置
server-id=2???#服務(wù)器id?(主從必須不一樣)
log-bin=mysql-bin???#打開日志(主機(jī)需要打開)
binlog-do-db=db1??#要給從機(jī)同步的庫
binlog-ignore-db=mysql???#不給從機(jī)同步的庫(多個(gè)寫多行)
binlog-ignore-db=information_schema
expire_logs_days=7????#自動清理?7?天前的log文件,可根據(jù)需要修改
修改完成后,重啟兩臺MySQL服務(wù) #systemctl restart mysqld.service?
2、重啟完成后 , 登錄MySQL
兩臺MySQL中都建立備份賬號:(這密碼我瞎寫的,可以自己百度生成隨機(jī)密碼)
mysql>grant replication slave on *.* to 'backup'@'192.168.152.132' identified by 'EeuiRE8' ;
mysql>grant replication slave on *.* to 'backup'@'192.168.152.130' identified by 'EeuiRE8' ;
可以輸入以下命令查看用戶信息
mysql> select user,authentication_string,host from user ;

3、配置主從(130 -->? ?132)
查看第一臺機(jī)器(130)的狀態(tài) :
mysql> show master status \G;

然后在第二臺機(jī)器(132)上配置第一臺機(jī)器(130)為主機(jī)。
mysql>?stop slave ;
mysql> change master to master_host='192.168.152.130', master_user='backup', master_password='EeuiRE8', master_log_file='mysql-bin.000002',master_log_pos=964;
mysql> start slave ;
然后查看主機(jī)狀態(tài)
mysql>show? slave? status \G;

當(dāng)Slave_IO_Running: Yes? ?Slave_SQL_Running: Yes 都為yes表示同步成功
4.配置主從(132 -->? ?130)
相同的操作,查看132的主機(jī)狀態(tài) , 在130上配置。
mysql>stop slave ;
mysql>change master to master_host='192.168.152.132', master_user='backup', master_password='EeuiRE8', master_log_file='mysql-bin.000001',master_log_pos=964;
mysql>start slave ;
然后查看主機(jī)狀態(tài)
mysql>show? slave? status? \G; 同樣,當(dāng)Slave_IO_Running: Yes? ?Slave_SQL_Running: Yes 都為yes表示同步成功
雙主測試: 在130中創(chuàng)建數(shù)據(jù)庫, 在132查看數(shù)據(jù)庫生成了;?在132的庫中插入表 ,130中有數(shù)據(jù)表了 。
其他命令:
初始化bin-log日志? ? ? ?mysql> reset master;
創(chuàng)建測試庫db1
mysql>create database db1 charset utf8;
創(chuàng)建表及插入數(shù)據(jù)測試
create table user(
? ? `userid` int(4) primary key not null auto_increment,
? ? `username` varchar(16) not null,
? ? `userpassword` varchar(32) not null
? );
INSERT INTO user (username,userpassword) VALUES('ccc','cccc');
MySQL+Keepalived可參考