第一步:配置主服務器
在這篇文章的剩下篇幅中,我將指定兩臺服務器。A(IP為10.1.1.1)作為主服務器(簡稱為主機)。B(IP為10.1.1.2)作為後備服務器(簡稱為備機)。
MySQL的復制功能的實現過程為:備機(B)與主機(A)連接,然後讀出主機的二進制更新日志,再將發生的變化合並到自已的數據庫中。備機需要一個用戶帳號來與主機連接,所以在主機上創建一個帳號,並隻給它FILE權限,如下操作:
GRANT FILE ON *.* TO replicate@10.1.1.2 IDENTIFIED BY “password”;
為瞭備機能夠與主機連接,要在主機上運行”FLUSH PRIVILEGES”,不過不要擔心,因為我們將在下面的步驟中停掉服務器。
現在我們需要主機數據庫的一個快照,並且對主機進行配置,允許生成二進制的更新日志。首先編輯”my.cnf”文件,以便允許二進制更新日志,所以在[mysqld]部分的下面某個地方增加一行:”log-bin”。在下一次服務器啟動時,主機將生成二進制更新日志(名為:$#@60;主機名$#@62;-bin.$#@60;增量序號#$#@62;)。為瞭讓二進制更新日志有效,關閉MySQL服務程序,然後將主機上的所有數據庫目錄到另一個目錄中,接著重新啟動mysqld。請確定得到瞭所有數據庫,否則在進行復制時,如果一個表在主機上存在但在備機上不存在,將因為出錯而退出。現在你已經得到瞭數據的快照,和一個從建立快照以來的二進制日志,上面記錄著任何對數據庫的修改。請註意MySQL數據文件(*.MYD,*.MYI和*.frm)是依賴於文件系統的,所以你不能僅僅進行文件傳輸,如從Solaris到Linux。如果你處於一個異種的服務器環境,你將不得不使用mysqldump實用程序或其它的定制腳本來得到數據快照。