環境介紹:
主:使用VMware虛拟Linux系統(CentOS7),并安裝mysql8.0
從:使用windows并安裝mysql8.0
雖然兩個資料庫的環境并不一樣,但是不會影響我們的MySQL主從複制。
步驟簡述:
1.在Linux系統中安裝MySQL(親測可用:https://www.jianshu.com/p/1dab9a4d0d5f)
2.在MySQL中建立用于主從複制的使用者并授權(親測可用:https://www.jianshu.com/p/d7b9c468f20d)
3.在Windows中安裝MySQL
4.配置主庫
5.配置從庫
主要介紹一下第4和第5步:
注意:MySQL 5.1.7版本之後,已經不支援把master配置屬性寫入my.cnf配置檔案中了,隻需要把同步的資料庫和要忽略的資料庫寫入即可。
主伺服器配置
在mysqld下增加如下參數
[mysqld]
#設定伺服器id,為1表示主伺服器,執行個體唯一ID,不能和canal的slaveId重複
server_id=1
#啟動MySQ二進制日志系統
log-bin=mysql-bin
#選擇row模式
binlog-format=ROW
#需要同步的資料庫名,如果有多個資料庫,可重複此參數,每個資料庫一行
binlog-do-db=DB1
#不同步mysql系統資料庫
binlog-ignore-db=mysql
從資料庫配置
由于使用的是Windows 中的MySQL 是以在my.ini配置檔案
[mysqld]中配置如下
#執行個體唯一ID,不能和canal的slaveId重複,表示為從資料庫
server-id=2
#啟動MySQL二進制日志系統
log-bin=mysql-bin
#選擇row模式
binlog-format=ROW
#需要同步的資料庫名,如果有多個資料庫,可重複此參數,每個資料庫一行
replicate-do-db=test_master
#不同步mysql系統資料庫
replicate-ignore-db=mysql
配置好後重新開機兩個資料庫!
下面我們看下配置是否正确
在主資料庫中執行 show master status;
在從資料庫中執行下面指令
mysql> CHANGE MASTER TO
-> MASTER_HOST='伺服器主機位址',
-> MASTER_USER='使用者名',
-> MASTER_PASSWORD='密碼!',
-> MASTER_LOG_FILE='binlog.000001',
-> MASTER_LOG_POS=1807;
Query OK, 0 rows affected, 1 warning (0.07 sec)
(2.)開始同步
mysql> START SLAVE;
(3.)檢視Slave的運作狀态
mysql> SHOW SLAVE STATUS\G
接下來就可以自己測試一下了,由于我使用的是Navicat 連結進行的測試是以就不在這裡展示了。