主的設定方法

web k發表於2016-10-22

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、如果主上有舊資料需要同步到從,選一種方式製作資料快照

 

相關文章