流程
- 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
-- 輸入密碼
- 同步前強烈建議先把主庫和從庫需要同步的數據庫調整爲一致,否則如果主庫數據裏大,會進行漫長的同步等待