1. 程式人生 > >MYSQL雙機熱備

MYSQL雙機熱備

主服務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)

若看到以上兩個資訊就表示主從熱備配置完成。