1. 程式人生 > 資料庫 >mysql在同一臺windows上實現主從複製

mysql在同一臺windows上實現主從複製

1.下載mysql5.7,複製一份,slave作為從節點

2.配置主節點的my.ini

執行命令:mysqld --install master --defaults-file="D:\mysql\mysql-5.7.32-winx64\my.ini"

其中的master為主庫mysql的服務名稱

執行命令:net start master

注:net stop master 為停止命令

以管理員身份執行cmd視窗,然後切換到壓縮包所在的bin目錄

輸入mysql -uroot -p -P3306

然後建立新使用者:

create user 'mytest'@'%' identified by '123456';

@後面的ip地址為允許連線的客戶端的ip地址。mytest是使用者名稱,123456是密碼

然後,給新使用者配置主從複製的許可權:

grant replication slave on *.* to 'mytest'@'%' identified by '123456';
@後面的ip地址為允許連線的客戶端的ip地址,如果改為 ‘%’,就表示客戶端沒有ip地址的限制

然後檢視主服務master的狀態:
mysql> show master status \G;

記住file,和position,因為等下配置從資料庫的時候會用到。

3.配置從節點的my.ini

執行命令:mysqld --install slave --defaults-file="D:\mysql\mysql-5.7.32-winx64-slave\my.ini"

其中的slave為主庫mysql的服務名稱

net start slave;啟動從節點

在此之後輸入mysql -uroot -p -P3307 則可連線上從庫成功

從庫上輸入命令: 
change master to master_host='127.0.0.1',master_port=3306,master_user='mytest',master_password='123456',master_log_file='master-bin.000005',master_log_pos=154;

ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.

mysql從機上已經進行過綁定了,如果繼續繫結需要先進行重置。

解決辦法

1、停止已經啟動的繫結

stop slave

2、重置繫結

reset master

3、執行復制主機命令

 

這裡的master_log_file和master_log_pos對應剛才show master status \G記下的引數。

 在從庫開啟從資料庫複製功能: 輸入命令 start slave; 啟動複製

show slave status \G

Slave_IO_Running :一個負責與主機的io通訊

Slave_SQL_Running:一個負責自己的slave SQL程序

在master 資料庫中插入一條資料,slave資料庫也會增加,至此mysql主從複製實現了。

4.主從複製原理