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';
然後,給新使用者配置主從複製的許可權:
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主從複製實現了。