經過MySQL主主:進行MySQL雙向同步數據庫HA的配置
配置node-1
它有兩種身份:
身份1: node-1的主。 身份2: node-2的從。node
安裝MySQL 5.7版本
上傳mysql-5.7.tar.gz到Linux主機上,並解壓:
注:mysql-5.7.tar.gz 中包括了安裝mysql5.7主要的軟件包。 這樣部署起來更方便
下載並解壓安裝
[root@node-1 ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tarmysql
[root@node-1 ~]# tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
[root@node-1 ~]# yum -y ×××tall ./mysql*.rpm
啓動mysql 服務
[root@node-1 ~]# systemctl start mysqld
在MySQL的配置文件/etc/my.cnf 中關閉密碼強度審計插件,並重啓MySQl服務。
[root@node-1 ~]# vim /etc/my.cnfsql
#修改MySQL的配置文件,在[myqld]標籤處末行添加如下項:
validate-password=OFF #不使用密碼強度審計插件
重啓mysql 服務
[root@node-1 ~]# systemctl restart mysqld
獲取臨時密碼
[root@node-1 ~]# grep 'password' /var/log/mysqld.log
2019-06-14T06:14:33.154120Z 1 [Note] A temporary password is generated for root@localhost: fhcJfqoV>3fN數據庫
使用臨時密碼登錄
#使用臨時密碼登陸MySQl,注意臨時密碼要引號vim
[root@node-1 ~]# mysql -u root -p'fhcJfqoV>3fN'
修改root 密碼
mysql> set password for root@localhost = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)服務器
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)架構
mysql> exit
Bye
修改node-1主配置文件負載均衡
[root@node-1 ~]# vim /etc/my.cnf
server-id = 1
log-bin=mysql-bin-master
binlog-do-db=HA
binlog-ignore-db=mysql #避免同步MySQL用戶 相關配置ide
重啓服務測試
[root@node-1 ~]# systemctl restart mysqld
登錄mysql
[root@node-1 ~]# mysql -u root -p123456
mysql> show master status;
受權
mysql> grant replication slave on . to slave@'192.168.150.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#########################################################################################################################
注意:若是不符合密碼要求修改以下(5.7版本)
方法一:
mysql> set global validate_password_policy=0; #定義複雜度
mysql> set global validate_password_length=1; #定義長度 默認是8
mysql> grant replication slave on . to slave@'192.168.150.%' identified by '123456';
mysql> flush privileges; #記得刷新受權表
方法二:
關閉密碼強度審計,在my.cnf添加validate-password=off
mysql> grant replication slave on . to slave@'192.168.150.%' identified by '123456';
mysql> flush privileges; #記得刷新受權表
#########################################################################################################################
配置node-2服務器
安裝MySQL 5.7版本
[root@node-2 ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
[root@node-2 ~]# tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
[root@node-2 ~]# yum -y ×××tall ./mysql*.rpm
啓動mysql
[root@node-2 ~]# systemctl start mysqld
在MySQL的配置文件/etc/my.cnf 中關閉密碼強度審計插件,並重啓MySQl服務
[root@node-2 ~]# vim /etc/my.cnf
validate-password=OFF #不使用密碼強度審計插件
重啓mysql
[root@node-2 ~]# systemctl restart mysqld
獲取臨時密碼
[root@node-2 ~]# grep 'password' /var/log/mysqld.log
2019-06-14T06:31:48.683960Z 1 [Note] A temporary password is generated for root@localhost: w/Sf8qeZw%)K
#使用臨時密碼登陸MySQl,注意臨時密碼要引號
[root@node-2 ~]# mysql -u root -p'w/Sf8qeZw%)K'
修改root密碼
mysql> set password for root@localhost = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
編輯MySQL從服務配置文件
[root@node-2 ~]# vim /etc/my.cnf
server-id = 2
log-bin=mysql-bin-slave
binlog-do-db=HA
binlog-ignore-db=mysql
[root@node-2 ~]# systemctl restart mysqld
先測試一下從賬號登錄是否正常
[root@node-2 ~]# mysql -u slave -p123456 -h 192.168.150.140
出現如下界面表示從服務器登錄到192.168.150.140 主服務器上成功
##########################################################################################################################
而後做主受權給從node-1
[root@node-2 ~]# mysql -uroot -p123456
mysql> grant replication slave on . to slave@'192.168.150.140' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#########################################################################################################################
注意:若是不符合密碼要求修改以下(5.7版本)
方法一:
mysql> set global validate_password_policy=0; #定義複雜度
mysql> set global validate_password_length=1; #定義長度 默認是8
mysql> grant replication slave on . to slave@'192.168.1.%' identified by '123456';
mysql> flush privileges; #記得刷新受權表
方法二:
關閉密碼強度審計,在my.cnf添加validate-password=off
mysql> grant replication slave on . to slave@'192.168.1.63' identified by '123456';
mysql> flush privileges; #記得刷新受權表
#########################################################################################################################
如下配置在node-2 上作受權和配置
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='192.168.150.140',master_user='slave',master_password='123456';
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G
再回來配置node-1
先測試一下從賬號登錄是否正常?
[root@node-1 ~]# mysql -u slave -p123456 -h 192.168.150.141
出現如下界面表示爲成功
![]
配置node-1 數據庫
mysql> change master to master_host='192.168.150.141',master_user='slave',master_password='123456';
Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
在node-1上查看狀態
mysql> show slave status\G
在node-1插入數據在node-2上查看
mysql> create database HA;
Query OK, 1 row affected (0.00 sec)
mysql> use HA;
Database changed
mysql> create table T1(id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)
mysql> ×××ert into T1 values(1,'hello');
Query OK, 1 row affected (0.02 sec)
node-2 查看數據
mysql> select * from HA.T1;
在node-2上插入數據,node-1上查看
mysql> select * from HA.T1;
注意:這種M-M架構沒有什麼好處,他每每給咱們產生一種實現了負載均衡的錯覺