MYSQL雙機熱備
阿新 • • 發佈:2019-01-12
主服務IP:192.168.136.1;
從服務IP:192.168.136.2。
開始前請確保兩臺服務現有資料一致。如果是通過檔案COPY方式來同步資料的,注意修改auto.cnf下的UUID,否則會出錯。
主伺服器配置步驟
1.修改my.cnf配置檔案
log_bin #mysql的複製機制是基於binlog的複製機制。通過配置此項可以定義日誌名稱,預設是本機域名localhost。 server_id = 1 #資料庫的id根據需要進行設定,主從伺服器必須不同。 #binlog-do-db = ... 記錄日誌的資料庫,多個用逗號分隔。 #binlog-ignore-db = .... 不記錄日誌的資料庫。
2.重啟mysql
3.檢視主服務狀態
mysql> FLUSHS TABLE WITH READ LOCK;--鎖表 mysql> show master status\G; *************************** 1. row *************************** File: localhost-bin.000001 Position: 120 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec) mysql> UNLOCK TABLES;
如果出現以上狀態資訊,表明主伺服器配置成功。此時需要記住File、Position對應的值以便後用。
4.允許從服務的熱備請求
mysql> grant replication slave on *.* to 'root'@'192.168.136.2' identified by '.';
從伺服器配置步驟
1.修改my.cnf配置檔案
server_id = 2
#資料庫的id根據需要進行設定,主從伺服器必須不同。
2.重啟mysql
3.設定熱備請求
mysql>stop slave; mysql>change master to master_host='192.168.136.1',master_user='root',master_password='.',master_log_file='localhost-bin.000001',master_log_pos=120; mysql>start slave;
master_log_file對應上文記錄的File值,master_log_pos對應上文記錄的Position值。注意Mysql版本從5.1.7以後開始就不支援“master-host”類似的引數了。如果是5.1.7以前的版本,可以參考下面的my.cnf配置:
master-host=172.25.42.83
#主伺服器的IP地址或者域名
master-port=3306
#主資料庫的埠號
master-user=user
#同步資料庫的使用者
master-password=passwd
#同步資料庫的密碼
master-connect-retry=60
#如果從伺服器發現主伺服器斷掉,重新連線的時間差
4.檢視從伺服器狀態
mysql> show slave status\G;
*************************** 1. row ***************************
……
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
……
1 row in set (0.00 sec)
若看到以上兩個資訊就表示主從熱備配置完成。