資料庫版本:5.1.24。
4.x版本的資料庫請自己去找相應文檔。
英文版文檔的原文地址:http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html
1 在主伺服器(master)正常啟動並執行情況下,建立一個專門用來同步資料的使用者。
CREATE USER ‘使用者名稱’@'從伺服器IP’ IDENTIFIED BY ‘密碼’;
GRANT REPLICATION SLAVE ON *.* TO ‘使用者名稱’@'從伺服器IP’;
這個使用者名稱和密碼(明文)以後會自動儲存到從伺服器上的master.info裡面。
2 修改主伺服器上面的my.cnf
[mysqld]
log-bin=mysql-bin
server-id=1
這個鏡像系統中的每一台mysql主機都需要一個不同的server-id (1~2的32次方-1)
PS:如果使用了innodb, 還需要加上:
innodb_flush_log_at_trx_commit=1
sync_binlog=1
PS again: 主服務組態檔裡面一定不能有 skip-networking
PS3: 主伺服器防火牆開放3306連接埠給從伺服器。
然後重新啟動主伺服器的mysqld,使配置生效。
3 擷取主伺服器狀態資訊並複製資料。
3.1 擷取主伺服器二進位日誌的座標
在主伺服器上運行一個mysql用戶端,
mysql> FLUSH TABLES WITH READ LOCK;
這會flush所有的資料表,並且阻塞所有的寫入操作。
對於innodb類型的表,COMMIT 語句也會阻塞。
不要退出這個mysql用戶端,否則這個read lock會失效。
在主伺服器上重新開啟一個mysql用戶端,
mysql > SHOW MASTER STATUS;
+—————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————+———-+————–+——————+
| mysql-bin.003 | 73 | test | manual,mysql |
+—————+———-+————–+——————+
File 欄位顯示的是二進位日誌的檔案名稱
Position 顯示的是此檔案中的位移量。 抄下來這二個資料。
They represent the replication coordinates at which the slave should begin processing new updates from the master.