標籤:ast 尋找 ssl lis single read 帳號 中繼日誌 問題
實現環境:
Master 主:192.168.100.165 (Mysql 5.6.36)
Slave 從 :192.168.100.156 (Mysql 5.6.36)
步驟
1.在主DB伺服器上建立複製帳號 (在Master上執行)
# mysql
mysql> CREATE USER ‘rpl‘@‘192.168.100.%‘ identified by ‘123456‘;
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.100.%‘;
2.主伺服器配置 (在Master上執行)
# vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
# binary logging #
log-bin = /data/mysql/log-bin #啟動二進位日誌
# replice #
server_id = 165 #指定服務ID
3.從伺服器配置 (在Slave上執行)
# vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
# binary logging #
log-bin = /data/mysql/mysql-bin #啟動二進位日誌
# replice #
server-id = 156 #指定服務ID
relay_log = /data/mysql/relay-bin #啟動中繼日誌
#log_slave_update = on #在中繼日誌執行後寫入到二進位日誌中
#read_only = on #開啟唯讀模式
4.重啟主MYSQL (在Master上執行)
# service mysqld restart
# #添加一些測試資料用於驗證結果
# mysql
mysql> CREATE DATABASE CHEN;
mysql> USE CHEN;
mysql> CREATE TABLE T1 (ID INT);
mysql> INSERT INTO T1 VALUES (1),(2),(3);
mysql> \q
5.重啟從MYSQL (在Slave上執行)
# service mysqld restart
6.備份主要資料庫(如果主從上的資料庫版本一樣,可以全備) (在Master上執行)
# mysqldump --single-transaction --master-data --triggers --routines --all-databases >> /root/165_full.sql
# #記錄MASTER_LOG_FILE和MASTER_LOG_POS 的值;
# more /root/165_full.sql #找到這樣一句話:CHANGE MASTER TO MASTER_LOG_FILE=‘log-bin.000003‘, MASTER_LOG_POS=520;
7.將主要資料庫備份傳輸到從資料庫中 (在Master上執行)
# scp /root/165_full.sql [email protected]:/root
8.將主要資料庫的備份匯入到從資料庫中 (在Slave上執行)
# mysql -uroot -p < /root/165_full.sql
9.初始複製鏈路 (在Slave上執行)
# mysql
mysql> change master to master_host=‘192.168.100.165‘,
-> master_user=‘repl‘,
-> master_password=‘123456‘,
-> MASTER_LOG_FILE=‘log-bin.000003‘ #從備份中尋找
-> MASTER_LOG_POS=520;#從備份中尋找
10.啟動當檢查結果
mysql> start slave; (在Slave上執行)
mysql> show slave status \G (在Slave上執行) 進程啟動
mysql> show processlist; (在Slave上執行) 兩個系統進程
mysql> show processlist; (在Master上執行) 一個系統進行
mysql> SELECT * FROM `chen`.t1; (在Master上執行) 查檢結果是否一致
mysql> SELECT * FROM `chen`.t1; (在Slave上執行) 查檢結果是否一致
mysql> INSERT INTO `chen`.t1 VALUES (4); (在Master上執行)
mysql> SELECT * FROM `chen`.t1; (在Master上執行) 查檢結果是否一致
mysql> SELECT * FROM `chen`.t1; (在Slave上執行) 查檢結果是否一致
如果都沒有問題,那就OK啦
Mysql 基於日誌點的主從複製(實操)