10分鐘搞定Mysql主從部署配置

锅总的程序人生發表於2024-05-16

流程

  1. Master資料庫安裝
  2. Slave資料庫安裝
  3. 配置Master資料庫
  4. 配置Slave資料庫

網路資訊

  1. Master資料庫IP:192.168.198.133
  2. 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,就證明同步正常了

注意事項

  1. 對從庫進行配置前,建議在從庫伺服器上,使用同步賬號透過mysql命令進行一次訪問,來確保兩臺伺服器之間可以相互訪問
mysql -h 192.168.198.133 -u synch -p
-- 輸入密碼
  1. 同步前強烈建議先把主庫和從庫需要同步的資料庫調整為一致,否則如果主庫資料裡大,會進行漫長的同步等待

相關文章