MySQL的主從備份,聽個名詞很高大上,其實都是MySQL原本就實現的了,你只需要簡單配置一下就可以實現。
第一步:保持主從兩個數據庫是同步的,最好事先手動同步一下;
第二步:停止兩個數據庫,分別更改配置文件;
下面我使用如下兩個地址來說明配置過程。
- 主數據庫:192.168.0.244
- 從數據庫:192.168.0.8
主服務器數據庫,增加如下配置:
server-id = 244 #這個唯一就OK,一般取IP地址后面的幾位
log-bin = E:\mysql\data\mysql-bin #日志所在目錄
binlog-do-db = test #這個是要同步的數據庫
從服務器數據庫,增加如下配置:
server-id = 8 #這個唯一就OK,一般取IP地址后面的幾位
replicate-do-db = test #這個是要同步的數據庫
第三步,分別重啟兩個服務器的MySQL服務;
- net stop mysql;
- net start mysql;
兩個服務器的MySQL服務都要啟動起來;
第四步,主服務器授權Slave權限賬號
GRANT REPLICATION SLAVE ON *.* to 'bu'@'%' identified by '123456';
第五步,登錄主服務器,查詢master狀態;
show master status;
注意結果,結果里面的東西,在下一步會用到。
第六步:登錄從服務器,配置從服務器的Slave
change master to master_host='192.168.0.244',master_user='bu',master_password='123456', master_log_file='mysql-bin.000004',master_log_pos=516;
master_log_pos是上面查詢出來的Position 516。
第七步、啟動從服務器的Slave
start slave;
第八步、驗證從服務器的Slave服務狀態
show slave status\G
以下兩個狀態必須為Yes。
Slave_IO_Running: Yes //此狀態必須YES
Slave_SQL_Running: Yes //此狀態必須YES
如果有一項為No都不會同步成功。
我碰到過Slave_IO_Running為Connecting的。那可能是上面的連接change master to master_host...寫錯了。
第九步、隨意修改下主數據庫的數據,從服務器數據庫立即會更新
參考網址:http://www.cnblogs.com/kissdodog/p/5422195.html