Windows版MySQL實現主從同步


系統版本 :  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

 

然后查詢主數據庫狀態,並記錄下FilePosition字段的值,命令為:

 

show master status;

 

我的查詢出來是:
Filemysql-bin.000005
Position1767

 

配置從數據庫

開啟從數據庫服務,手動創建測試讀寫分離的庫,這邊不會幫你自動創建,同時也創建和主庫一樣的用戶,我這里還是用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_filemaster_log_pos就是配置主數據庫查詢到的FilePosition

啟動從庫,即上文加粗的字體。

 然后開啟從數據庫

start slave;

 

檢查是否啟動成功

 

show slave status;

 

如果Slave_IO_State字段顯示 Waiting for master to send event說明成功,當然你也可以在主庫表中插入一條數據,看看從庫是否有同步,到這里,已經配置好主從同步了。

此方法不能同步之前的數據,若需要同步之前的數據,可備份主數據庫數據然后恢復到從數據庫。或者通過數據日志來同步數據。

 

轉載請注明出處,謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM