首先設定MySQL主伺服器:
在主伺服器上為從伺服器建立一個使用者:
1.grant replication slave on *.* to 192.168.0.1 identified by '1234';
#4.1以後用這個,以前可以用 file.
#grant file on *.* to 192.168.0.1 identified by '1234';
#後來我又加了super和client save許可權,可以先不加.然後再試.
設定檔:/etc/my.cnf
2.主伺服器上
server-id = 1
log-bin
binlog-do-db=需要備份的資料庫名,如果備份多個資料庫,重複設定這個選項即可
binlog-ignore-db=不需要備份的資料庫苦命,如果備份多個資料庫,重複設定這個選項即可
3.從伺服器上
log-bin
server-id=2
master-host=主機
master-user=使用者名稱
master-password=密碼
master-port=連接埠
replicate-do-db=需要備份的資料庫名,如果備份多個資料庫,重複設定這個選項即可
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
就這麼簡單照上面的配置就可以了.
主伺服器上的相關命令:
show master status
show slave hosts
show logs
show binlog events
purge logs to 'log_name'
purge logs before 'date'
reset master(老版本flush master)
set sql_log_bin=
從伺服器上的相關命令:
slave start
slave stop
SLAVE STOP IO_THREAD //此線程把master段的日誌寫到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此線程把寫到本地的日誌應用於資料庫
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //動態改變master資訊
PURGE MASTER [before 'date'] 刪除master端已同步過的日誌
#
後話:
做實驗的時候是給一台運行很久的而且很關鍵的資料庫做備份,遇到的問題兩個
1.兩個資料庫的設定檔不一樣.
竟然字型還不一樣.無語ing
2.資料庫檔案不一致問題,這是後來操作中產生的.所以無論主伺服器多重要要做從伺服器的時候一定把主伺服器
停了,把東西拷到從伺服器上.
再就是多看看mysql的記錄檔,很有協助的