ENIX.DQ 發表於 2006-9-28 22:51:41

[其它] MYSQL 5.0異地同步備份

本文作用:使用MYSQL內建功能,將兩台MYSQL SERVER的資料,由其中一台同步備份到另外一台

好處:倒站的時候就知道了~

要同步備份的資料庫名稱:LAOZHAO

網路環境介紹:兩台電腦不在同一網域。

MASTER

IP:210.111.222.111(參考IP)
OS :Windows 2003
web:Appserv 2.5.6(MYSQL版本 5.0)

SLAVE

IP:50.123.123.123 (參考IP)
OS :Windows XP SP2
web:Appserv 2.5.6(MYSQL版本 5.0)

打開 my.ini on MASTER
加入


server-id = 1
log-bin
set-variable=binlog-ignore-db=mysql

在MASTER的MYSQL SERVER
新增一名使用者(ID:dqno1password:11111111),並給予相關權限
參考指令如下:


GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO dqno1@50.123.123.123 IDENTIFIED BY '11111111';



STOP mysql server on MASTER,接著打包MYSQL底下的data資料夾(參考路徑C:\appserv\mysql\data\),整個用來取代SLAVE上的data資料夾,取代前請先停止SLAVE上的mysql server ,否則可能無法取代。

接著到SLAVE編輯MY.INI,加入這一大串
server-id = 2
master-host = 210.111.222.111 #MASTER IP or domain name or HOSTNAMEmaster-user = dqno1#username
master-password = 11111111 #userpassword
master-port = 3306 #mysql server port
set-variable=replicate-ignore-db=mysql #不更新的資料庫名稱
set-variable=replicate-do-db=LAOZHAO #要更新的資料庫名稱接著啟動MASTER及SLAVE上的MYSQL SERVER登入SLAVE的MYSQL,輸入下面指令mysql>SHOW SLAVE STATUS\G;

注意這三行狀態若是如下,表示已經完成設定。
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

請自行注意防火牆相關設定

TIP:設定途中,如發現SLAVE的MY.INI中設定檔設定錯誤,修改後,RESTART MYSQL仍無效果,請自行修改C:\AppServ\MySQL\data底下的master.info,再重啟MYSQL即可

該死的滑鼠害我這篇文章重打三次,每次重打中文字增多,到最後變成這付德行 :smo ,連帶一些詳細的說明也不想打了,其他參數自行參考官方文件吧~

參考文章:
http://www.phpmore.com/?a=review_display&id=17
http://imysql.cn/?q=node/61

ENIX.DQ 發表於 2006-9-29 11:28:35

:smo 單向同步完成之後...
接下來要搞的當然就是雙向同步..
沒想到剛剛看到一篇....
= =原來雙向同步的方法就是那麼愚蠢.....
只要把兩台MYSQL同時設為MASTER及SLAVE..
讓兩台互相把對方當作MASTER..........
:smo 真的有那麼簡單嘛?
:smo 下午來玩玩看.....

ENIX.DQ 發表於 2006-10-19 13:56:04

補充,雙向同步備份~

做法:
STOP兩台MYSQL
分別刪除C:\AppServ\MySQL\data底下的master.info
將兩台皆設為Master & Slave

example:
HOST1

server-id = 1
log-bin
set-variable=binlog-ignore-db=mysql
master-host = 210.111.222.111 #HOST2 IP
master-user = dqno1#username
master-password = 11111111 #userpassword
master-port = 3306 #mysql server port
set-variable=replicate-ignore-db=mysql #不更新的資料庫名稱
set-variable=replicate-do-db=LAOZHAO #要更新的資料庫名稱


HOST2

server-id = 2
log-bin
set-variable=binlog-ignore-db=mysql
master-host = 210.111.222.xxx #HOST1 IP
master-user = dqno1#username
master-password = 11111111 #userpassword
master-port = 3306 #mysql server port
set-variable=replicate-ignore-db=mysql #不更新的資料庫名稱
set-variable=replicate-do-db=LAOZHAO #要更新的資料庫名稱

重新啟動~
頁: [1]
查看完整版本: [其它] MYSQL 5.0異地同步備份