花了半天時間研究了下下MySQL的備份實現,發現其是在MY.CNF(MY.INI)配置文件中作的設置,直接設置服務器唯一性ID號加上其它的附加設置,則可作為一台MASTER,而在SLAVE機上,也只需要在配置文件中設置一下連接MASTER所需的參數即可,如果在MASTER裡也加上連到SLAVE機的參數,則就是雙向備份了~~不過,這些連接參數中用到的賬號需要注意權限的設置,否則會搞半天沒反就急死你迪。。。
我在WIN上和Linux上各裝了MySQL5,下面是它們的配置:
WIN(172.22.33.33)下的MASTER(由於我改了端口3327所以下面多加了個端口方面的特殊處理了)的配置(my.ini):(**一定要在MySQLd配置段中配置,不象PHP,apache可以隨便找個方便的地方配的,注意哈!!)
[MySQLd] #master 設置 server-id=1 log-bin=c:/masterlog binlog-do-db=db5
#實現雙機備份段,給MASTER同時加上SLAVE段,可選哈,如果不選,那就是WIN到LIN的主從備份
master-host=172.22.1.37 master-user=backup2 master-passWord=backup2 master-port=3306 master-connect-retry=60 replicate-do-db=db5
數據庫中加一個賬號:
GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER ON *.* TO backup@'172.22.1.37' IDENTIFIED by 'backup';
這個權限表示,這個backup賬號只能由從備份機172.22.1.37訪問只能用來進行備份操作
Linux(172.22.1.37)下的SLAVE機的配置(把安裝目錄裡找到的任意一個*.cnf拷到/etc/my.cnf下進行修改):
server-id=2 #如果不需要雙向備份下面兩行可以不要 #否則還要加一個數據庫用戶賬號 /* GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER ON *.* TO backup2@'172.22.33.33' IDENTIFIED by 'backup2'; */ log-bin=./masterlog binlog-do-db=db5 #--------------------------------------- master-host=172.22.33.33 master-user=backup master-passWord=backup master-port=3327 master-connect-retry=60 replicate-do-db=db5
由於只是大概的弄了一下,特別是在數據庫用戶方面沒有作仔細試驗:),可能會有所不太准確的地方,還有就是,上面測試用到的數據庫一定要是已經建立好並且結構相同的,兩台機子都重啟後會進行檢查,如果出現找不到或者檢查到結構不同,會報錯,最好就是在創建空數據庫時或初始時安裝兩個一樣的數據庫後就建立好關系,對於不同版本的MYSQL,官方說明也可以同步,但想一想,把MySQL5 的數據備份到4中去丟失5的特性也沒什麼意義吧。。