一、作業系統
主從 | 作業系統 | mysql版本 | IP位址 |
主 | win10 | 5.7 | 192.168.1.102 |
從 | win7 | 5.5 | 192.168.1.121 |
二、主資料庫操作
2.1 安裝目錄下找到my.ini檔案,在mysqld下添加主伺服器配置
server-id=1 #伺服器id
log-bin=E:\MySQL Server 5.7\mysql-bin 二進制檔案存放路徑
binlog-do-db=test1 需要同步的資料庫
儲存重新開機mysql。
2.2 授權
2.2.1 連接配接資料庫:mysql -u使用者名 -p密碼
2.2.2 設定權限:grant replication slave,reload,super on *.* to [email protected] identified by '123456';
ps: 給從服務192.168.1.121添權重限,使用者名:root,密碼:123456
2.2.3 檢視狀态:show master status; # 找到File 和 Position 的值記錄下來
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1IDOxAjM0MTMwMTMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
三、從資料庫操作
3.1 在mysql安裝目錄下找到my.ini檔案,在mysqld下添加從伺服器端配置:
server-id=2 伺服器id
replicate-do-db=test1 需要同步的資料庫
3.2 從伺服器上首先測試連接配接主資料庫:mysql -h 192.168.1.102 -uroot -p123456
ps:如果連接配接不上,檢視主伺服器的防火牆是否關閉。
3.3 連接配接從伺服器:mysql -uroot -p123456
修改對資料庫的連接配接參數:
mysql>change master to master_host='192.168.1.102',master_user='root',master_password='123456', master_log_file='mysql-bin.000002',master_log_pos=18104;(這裡輸入的mysql-bin.000002和18104請替換為2.2.3中查詢出來的值 否則不會同步的)
3.4 啟動slave線程:start slave;
3.5 檢視slave狀态:show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果是這種情況,則表明同步成功!
四、遇到的問題及解決方法
4.1 在執行完3.4跟3.5的操作後,發現錯誤:
Got fatal error 1236 from master when reading data from binary log: 'Slave can not handle replication events with the checksum that master is configured to log; the first event 'mysql-bin.000002' at 18104, the last event read from './mysql-bin.000002' at 18104, the last byte read from './mysql-bin.000001' at 123.'
解決辦法:
這個錯誤應該是slave為低版本造成的,在主資料庫的my.ini中添加binlog_checksum =none。重新開機mysql
執行show master status;
從伺服器重新連接配接。即可解決該問題!
4.2 在同步之前需要保證兩個資料庫中的資料一緻,是以需要将主伺服器的資料庫(test1)導出,并在從伺服器中導入。
4.2.1 導出:mysqldump -uroot test1 -p123456 >E:\test1.sql
4.2.2 導入:mysql> source E:\test1.sql;