天天看點

主從複制詳細配置

注意:主從伺服器mysql版本最好一緻,本次測試基于mysql5.7windows版本;主從伺服器網絡互通;

一、主伺服器配置步驟:

  1. 安裝mysql資料庫;
  2. 配置my.ini檔案(配置後重新開機mysql服務)。找到主資料庫的配置檔案my.ini(或者my.cnf),我的在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini;

配置唯一的server-id(一般預設server-id=1,此處server-id不和從庫server-id相同即可)。

開啟二進制日志(),在my.ini配置檔案中[mysqld]下方插入:log-bin=mysql-bin #開啟二進制日志

3. 打開cmd指令行,登入mysql資料庫,修改root使用者的host字段,将預設host=“localhost”改為host=“%”;

  1. 檢視master狀态,記錄二進制檔案名(如下執行個體:mysql-bin.000001)和位置(如下執行個體:154),以上兩個資料在從庫連接配接主庫時要用。Binlog_Do_DB字段為“允許同步的資料庫的庫名”。Binlog_Ignore_DB字段為“不允許同的資料庫的庫名”。此處在my.ini檔案中設定,在[mysqld]下方加入binlog-do-db = game(資料庫名。例如:game)表示允許同步“game”資料庫。不允許雷同;

mysql > SHOW MASTER STATUS;

±-----------------------±-----------±--------------------±------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

±-----------------------±-----------±--------------------±------------------------+

| mysql-bin.000001 | 154 | game | |

±-----------------------±-----------±--------------------±------------------------+

二、從伺服器配置步驟:

  1. 安裝mysql資料庫;
  2. 配置my.ini檔案(配置後重新開機mysql服務)。找到主資料庫的配置檔案my.ini(或者my.cnf),我的在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini;(ProgramData可能時隐藏檔案,通過%ProgramData%搜尋可找到)

配置唯一的server-id,将server-id改為2。(一般預設server-id=1,此處server-id不與主庫server-id相同即可。)

3. 申請通路主庫;cmd指令行重新開機并登入mysql,執行以下sql語句(若不能執行,請按錯誤提示輸入指令);

mysql> CHANGE MASTER TO

-> MASTER_HOST=‘10.25.101.165’, #此ip為主伺服器ip位址

-> MASTER_USER=‘root’, #此root為主庫使用者名

-> MASTER_PASSWORD=‘0000’, #此0000為主庫使用者名的密碼

-> MASTER_LOG_FILE=‘mysql-bin.000001’, #此mysql-bin.000001為二進制檔案名,主伺服器 SHOW MASTER STATUS; 指令等到的值

-> MASTER_LOG_POS=154; #此154為主伺服器二進制檔案位置, 主伺服器 SHOW MASTER STATUS; 指令等到的值

4.啟動slave程序;

mysql> start slave;
           

5.測試是否同步成功;如下紅色部分,Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 均為 yes 則為成功;

mysql> show slave status\G
           

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.25.101.165

Master_User: root

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 154

Relay_Log_File: mysqld-relay-bin.000022

Relay_Log_Pos: 11765

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

如果Slave_IO_Running: connecting 表示連接配接主庫出現問題;

可能出現的原因有:

1,網絡不通;2,MASTER_LOG_POS​​​​​​​值和主伺服器對不上;3,使用者名或者密碼錯誤;

4.成功後去主從伺服器game資料庫測試即可。