注意:主從伺服器mysql版本最好一緻,本次測試基于mysql5.7windows版本;主從伺服器網絡互通;
一、主伺服器配置步驟:
- 安裝mysql資料庫;
- 配置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=“%”;
- 檢視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 | |
±-----------------------±-----------±--------------------±------------------------+
二、從伺服器配置步驟:
- 安裝mysql資料庫;
- 配置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資料庫測試即可。