step1、修改配置:
必配項:
一、主從關係組內唯一的server ID,取值範圍是1~(232)-1
二、啟用二進位制日誌,如果這兩項任意一項以前沒有配置過,配好以後都需要重啟準備作為主的伺服器
配置方法:
關閉MySQL伺服器,找到my.cnf或者my.ini檔案開啟,找到[mysqld]部分新增下面2行。server-id可以自行跟進需要修改,修改儲存以後,重啟伺服器
[mysqld] log-bin=mysql-bin server-id=1
注意:
1.如果使用的是事務型的儲存引擎innodb,為了最大可能的永續性和資料一致性,需要在my.cnf檔案中設定innodb_flush_log_at_trx_commit=1, sync_binlog=1
2.主伺服器的配置中要確保skip-networking選項不可用,否則從無法和主通訊導致複製關係建立失敗
step2、為了使從可以連線到主,還需要為從建立使用者和密碼。
多個從可以使用相同或不同的使用者名稱密碼,建立的使用者需要賦予必要的許可權replication slave,在主伺服器上執行以下sql
CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';
step3、獲取主的二進位制日誌座標
如果主機之前在執行的時候沒有啟用二進位制日誌,那麼show master status 或者mysqldump —master-data得到的就是空。這時在為從配置日誌檔案和位置時日誌檔案是’’,檔案位置是4。
如果主機之前已經啟用了二進位制日誌,按以下步驟獲取座標
1、通過命令列連線到主,然後執行
FLUSH TABLES WITH READ LOCK;
執行後不要退出命令列,否則讀鎖就會被釋放
2、另開一個連線主的會話,執行:
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73 | test | manual,mysql |
+------------------+----------+--------------+------------------+
3、如果主上沒有舊資料需要同步到從, 退出執行讀鎖的會話或者在會話裡釋放掉鎖:
unlock tables;
4、如果主上有舊資料需要同步到從,選一種方式製作資料快照