主從同步的前提是讀寫分離,所謂讀寫分離,就是至少兩個mysql服務,其中一個mysql服務做增刪改【主】,另外一個【多個】mysql服務做查詢【從】,增刪改的數據要很快同步到從機,這就是主從同步,mysql自帶主從同步。本文將闡述如何配置主從同步。
1、前提約束
- 兩臺CentOS7虛擬機,都已經安裝mysql。作者的兩臺機子分別是192.168.100.134、192.168.100.136,端口都為3306,賬號都為root,密碼都為zhangli。請讀者根據自己的事情情況設置。
vmware中安裝CentOS虛擬機 http://www.lxweimin.com/p/2b6340bf43e5
CentOS中安裝mysql http://www.lxweimin.com/p/6691f6fb8c0e - 兩臺機子相互ping得通
http://www.lxweimin.com/p/b850e695a490
2、登錄到192.168.100.134【主機】
- 編輯my.cnf
[mysqld]
server-id=2
log-bin=mysql-bin
read-only=1
log-slave-updates=1
replicate-do-db=db01 #要同步的數據庫,如果有多個數據庫,則配置多行
replicate-do-db=db02 #要同步的數據庫,如果有多個數據庫,則配置多行
binlog-ignore-db=mysql #被忽略的數據
- 重啟數據庫
systemctl restart mysqld
- 查看master狀態
mysql -uroot -pzhangli
show master status
查看和記錄master狀態
3、登錄到192.168.100.136【從機】
- 編輯my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
log-slave-updates=1
binlog-do-db=db01 #要同步的數據庫,如果有多個數據庫,則配置多行
binlog-do-db=db02 #要同步的數據庫,如果有多個數據庫,則配置多行
binlog-ignore-db=mysql #被忽略的數據
binlog_checksum =none
- 重啟mysql
systemctl restart mysqld
mysql -uroot -pzhangli
- 設置slave復制,注意MASTER_LOG_FILE、MASTER_LOG_POS就是上面記錄的值,下面整個是一條語句。
CHANGE MASTER TO
MASTER_HOST='192.168.100.134',
MASTER_USER='root',
MASTER_PASSWORD='zhangli',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=106,
MASTER_CONNECT_RETRY=10;
- 啟動slave以及查看狀態
start slave;
SHOW SLAVE STATUS\G;
紅顏色地方要為Yes
紅顏色的地方都為yes,則證明配置主從同步成功。
4、測試
在主機134中創建db01、db02、在db01/02中做任何的操作,從機136都會有一模一樣的結果。
至此,我們就完成了mysql的主從同步。