流程
- Master資料庫安裝
- Slave資料庫安裝
- 配置Master資料庫
- 配置Slave資料庫
網路資訊
- Master資料庫IP:192.168.198.133
- Slave資料庫IP:192.168.198.132
配置Master資料庫
在Master資料庫安裝完畢後,修改/etc/my.cnf
[mysqld]
server-id=1 \\指定ID,主從的兩臺虛擬機器ID必須不同
log-bin=mysql-bin \\mysql根據配置自動設定指定的二進位制檔名
修改完配置檔案,重啟資料庫主庫
systemctl restart mysqld
在Master庫中新增同步使用的使用者(不能用root)
-- 建立使用者synch,IP地址必須繫結Slave伺服器IP,否則Slave無法透過此賬號來訪問
create user 'synch'@'192.168.198.132' identified by '123456';
-- 對賬號的資料庫和資料表進行授權,授權全部庫即可
grant replication slave on *.* to 'synch'@'192.168.198.132';
-- 重新整理許可權
flush privileges;
檢視住資料庫狀態,確定日誌File名和當前bin日誌的位置,提供給從庫做配置使用。下圖中的Position指的是log-bin日誌的位置,一般這裡寫什麼,從庫中就寫什麼。從庫中寫了該資訊後,同步將從此日誌位置開始
也就是說,在同步之前,你的主庫和從庫狀態必須是一致的。否則在從庫配置該屬性的時候,就要配置為0
配置Slave資料庫
你有幾個Slave就配置幾個,咱們這以一個Slave資料庫舉例。同樣先修改/etc/my.cnf
[mysqld]
server-id=2
replicate-do-db=test \\指定要複製的資料庫
修改完重啟資料庫
systemctl restart mysqld
進入從庫的互動模式
mysql -uroot -p
-- 輸入密碼
-- 停掉同步
stop slave;
-- 修改同步的配置,注意:以下配置每一行後面一定不能有空格,否則識別可能不透過
change
master to
master_host='192.168.198.133',
master_port=3306,
master_user='synch',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=3558;
-- master_host:主庫的IP
-- master_user:同步使用者,就是上一環節建立的使用者
-- master_password:使用者密碼,就是上一環境建立的使用者密碼
-- master_log_file:上一環節看到的日誌檔名
-- master_log_pos: 從哪一行開始同步
-- 開啟同步
start slave;
-- 檢視從庫同步資訊和狀態
show slave status\G;
從庫同步資訊和狀態中,只要Slave_IO_Running和Slave_SQL_Running 都是Yes,就證明同步正常了
注意事項
- 對從庫進行配置前,建議在從庫伺服器上,使用同步賬號透過mysql命令進行一次訪問,來確保兩臺伺服器之間可以相互訪問
mysql -h 192.168.198.133 -u synch -p
-- 輸入密碼
- 同步前強烈建議先把主庫和從庫需要同步的資料庫調整為一致,否則如果主庫資料裡大,會進行漫長的同步等待