系統版本 : Windows 10
MySQL 版本 :5.7.25
文中藍色字體均為命令,
全部是在MySQL客戶端的命令執行窗口 MySQL 5.7 Command Line Client 中執行以下命令。配置主數據庫是在主數據庫執行,配置從數據庫是在從數據庫執行,注意不要整錯了。
說明:1.兩台Windows服務器上均安裝的是MySQL Server 5.7版本
2.在主從的服務器上分別找到以下路徑的my.ini文件(默認安裝路徑下是以下路徑)
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
主數據庫配置文件my.ini中的mysqld節點下加入:
[mysqld]
server-id=1
log-bin=mysql-bin #從庫會基於此log-bin來做復制
binlog-do-db=mytest #用於讀寫分離的具體數據庫,這里我創建了mytest作測試
binlog_ignore_db=mysql #不用於讀寫分離的具體數據庫
binlog_ignore_db=information_schema #和binlog-do-db一樣,可以設置多個
從數據庫配置文件my.ini中mysqld節點下加入:
[mysqld]
server-id=2
log-bin=mysql-bin #從庫會基於此log-bin來做復制
replicate-do-db=mytest #用於讀寫分離的具體數據庫,這里我創建了mytest作測試
注1:綠色字體加入對應主從數據庫my.ini文件中。(my.ini文件默認不可修改,可拷貝到桌面,修改后通過管理員權限覆蓋)
注2:在對從數據庫配置的時候,需要在文件內找到找到server-id,將它改成和主庫不一樣的,
多個從庫時,可以遞增填寫。
配置主數據庫
開啟主數據庫服務,創建用來測試讀寫分離的數據庫。
對用戶授權使其用於復制主庫數據
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456';
用戶名:root
密碼:123456
然后查詢主數據庫狀態,並記錄下File和Position字段的值,命令為:
show master status;
我的查詢出來是:
File:mysql-bin.000005
Position:1767
配置從數據庫
開啟從數據庫服務,手動創建測試讀寫分離的庫,這邊不會幫你自動創建,同時也創建和主庫一樣的用戶,我這里還是用root
先停止從庫
stop slave
設置它的master,命令為:
change master to
master_host='192.168.47.128',
master_port=3306,
master_user='root',
master_password='root',
master_log_file='mysql-bin.000005',
master_log_pos=1767;
注:這里的 master_log_file和master_log_pos就是配置主數據庫查詢到的File和Position
啟動從庫,即上文加粗的字體。
然后開啟從數據庫
start slave;
檢查是否啟動成功
show slave status;
如果Slave_IO_State字段顯示 Waiting for master to send event說明成功,當然你也可以在主庫表中插入一條數據,看看從庫是否有同步,到這里,已經配置好主從同步了。
此方法不能同步之前的數據,若需要同步之前的數據,可備份主數據庫數據然后恢復到從數據庫。或者通過數據日志來同步數據。
轉載請注明出處,謝謝。