對於主從複製的原理我這裏就不解釋了,CSDN其他文章都有介紹,我這邊就介紹同步的步驟。
話不多說,直接開幹。
首先,我們還是要保證數據庫版本的一致性。
1、主節(Master)點配置
首先找到Master的配置文件(my.ini文件)
找到後加入或者配置一下參數:
log-bin=mysql-bin
server-id=1
2、從節點(Slave)配置
首先找到Slave的配置文件(my.ini文件)
找到後加入或者配置一下參數:
server-id=2
3、授權操作的用戶
注意root是主服務器的用戶,而 192.168.0.2 指的是從數據庫的服務器IP,意思就是讓從服務器有訪問的權限
mysql> CREATE USER 'root'@'192.168.0.1' IDENTIFIED WITH mysql_native_password BY 'admin';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.0.2';
我這邊沒有新建用戶,權當測試用的,你們可以新建一個專門操作同步的用戶。
刷新授權表信息
mysql> flush privileges;
4、獲取主服務器當前binary log文件名和位置
5、在從(Slave)節點上設置主節點參數
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.1', -- 主服務器IP
MASTER_USER='root', -- 主服務器用戶
MASTER_PASSWORD='admin', -- 主服務器用戶密碼
MASTER_LOG_FILE='WIN-MOL6VAV4FEI-bin.000005', -- 主服務器
MASTER_LOG_POS=3244; -- 位置
6、查看(Slave)主從同步狀態
mysql> show slave status;
這邊我輸了mysql> show slave status\G;這個報錯,也不知道是爲什麼!如果有大神看到這個問題,還請評論告知,感謝!
7、開啓主從同步
mysql> start slave;
8、再查看主從同步狀態
mysql> show slave status;
查看狀態時,可能會出現I/O任務啓動失敗的情況,Slave_IO_Runninng = NO。
這是因爲在MySQL主從結構中,從機上的server_id
和主機上的server_id
不能相同,我們可以看一下主機上的server_id
和從機上的server_id
是否相同。
查看主從機的server_id,看看是否一樣。
mysql> show variables like 'server_id';
如果一樣,就修改從機的Server_id
mysql> set global server_id=2; #此處的數值和my.cnf裏設置的一樣就行
9、重新開啓同步並查看狀態
mysql> start slave;
mysql> show slave status;
開啓主從之後,如果狀態如上圖所示,那麼說明主從信息就已經配置好了。下面你就可以測試,主從之間是否可以複製了。