CentOS 7 下 MySql5.7 主從配置

演示用兩臺全新MySql服務器:
mysql1:10.10.1.55 (主)
mysql2:10.10.1.56 (從)
配置主從,步驟以下:
 
STEP 1:在mysql1上建立複製帳號 repl
CREATE USER 'repl'@'10.10.1.%' IDENTIFIED BY 'myRep8%Go';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'10.10.1.%';
 
STEP 2:在mysql1上編輯 /etc/my.cnf 文件,增長兩行
log_bin=mysql-bin
server_id=55
 
開啓二進制日誌和設置server_id(只能是數字,此處用IP地址後兩位),而後重啓mysqld,
 
用root帳號登陸進去,執行「SHOW MASTER STATUS」語句,檢查輸出是否與以下一致
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+----------
---------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
Executed_Gtid_Set |
+------------------+----------+--------------+------------------+----------
---------+
| mysql-bin.000001 | 154 | | |
|
+------------------+----------+--------------+------------------+----------
---------+
1 row in set (0.00 sec)
 
STEP 3:在mysql2上編輯 /etc/my.cnf 文件,增長如下配置,而後重啓mysqld
log_bin=mysql-bin
server_id=56
relay_log=/var/lib/mysql/mysql-relay-bin
log_slave_updates=1
read_only=1
若是採用「主-主」結構,read_only爲可選配置
 
STEP 4:登陸mysql2數據庫,執行如下語句,讓mysql2鏈接到mysql1,並重放其二進制日誌
CHANGE MASTER TO MASTER_HOST='10.10.1.55',
MASTER_USER='repl',MASTER_PASSWORD='myRep8%Go', MASTER_LOG_FILE='mysqlbin.000001', MASTER_LOG_POS=154;
執行成功後,再輸入「SHOW SLAVE STATUS\G」檢查配置是否正確,以下所示
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 10.10.1.55
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 4
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: No
Slave_SQL_Running: No
 
Slave_IO_State 爲空,Slave_IO_Running 和 Slave_SQL_Running 均爲 NO,表示複製並未運
行,
要啓動複製還需運行命令「START SLAVE」
 
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.1.55
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 623
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 836
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
後記:
若是對mysql1再作一遍和mysql2相似的配置,便可把mysql1設置爲mysql2的從庫,實現「主-
主」熱備結構。一般來講一個高可用的讀寫分離數據庫架構至少須要三臺服務器:一臺主,一臺
熱備主,一臺只讀。
刪除主從配置命令
reset master: 刪除全部的二進制日誌,並從新建立一個新的二進制日誌
reset slave all: 從slave刪除主從複製關係的位置信息,並徹底的清理複製鏈接參數信息
 
 
mysql 重啓的話 要 重放其二進制日誌
 
查看是否開啓二進制日誌
w variables like '%log_bin%';
CHANGE MASTER TO MASTER_HOST='192.168.237.101',
MASTER_USER='repl',MASTER_PASSWORD='Root123!', MASTER_LOG_FILE='mysqlbin.000004', MASTER_LOG_POS=0;
 
master 主機意外中止運行,重啓master 須要從新指向master 的二進制文件和pos
change master to master_host='192.168.237.101',master_user='repl',master_password='Root123!',master_log_file='mysql-bin.000007',master_log_pos=154;
相關文章
相關標籤/搜索