MySQL內部復制功能是建立在兩個或兩個以上服務器之間,通過設定它們之間的主-從關系來實現的。其中一個作為主服務器,其它的作為從服務器。本節將詳細討論如何配置兩台服務器,將一個設為主服務器,另一個設為從服務器。並且描述一下在它們之間進行切換的處理過程。本節是在MySQL的3.23.25版本上進行的配置設置過程,並且也是在這個版本上進行的測試。MySQL開發人員建議最好使用最新版本,並且主-從服務器均使用相同的版本。同時MySQL 3.23版本仍然是beta測試版,而且這個版本可能不能向下兼容。
配置主服務器
我們將指定兩台服務器。A(IP為192.168.0.1)作為主服務器(簡稱為主機)。B(IP為192.168.0.2)作為從服務器(簡稱為從機)。
1、建立用於備份的帳號
MySQL的復制功能的實現過程為:從機(B)與主機(A)連接,然後讀出主機的二進制更新日志,再將發生的變化合並到自已的數據庫中。從機需要一個用戶帳號來與主機連接,所以在主機上創建一個帳號,並只給它FILE權限,如下操作:
mysql>GRANT FILE ON *.* TO [email protected] IDENTIFIED BY password;
為了從機能夠與主機連接,要在主機上運行FLUSH PRIVILEGES:
mysql> FLUSH PRIVILEGES;
不過不要擔心,因為我們將在下面的步驟中停掉服務器。
2、修改選項文件
現在我們需要主機數據庫的一個快照,並且對主機進行配置,允許生成二進制的更新日志。首先編輯my.cnf文件,以便允許二進制更新日志,所以在[mysqld]部分的下面某個地方增加一行:log-bin。在下一次服務器啟動時,主機將生成二進制更新日志(名為:<主機名>-bin.<增量序號#>)。
[mysqld]
log-bin
為了讓二進制更新日志有效,關閉MySQL服務程序,然後將主機上的所有數據庫目錄到另一個目錄中,接著重新啟動mysqld。