上章講了mysql已經把數據搬遷完成,但目前看起來理論上數據是一致的,故先把主從作上把。目的先實現吧
環境(此處ip,密碼均是亂造的):
主:192.1.31.161 端口:3306 用戶:vnum 密碼:vnum@123
從:192.1.31.162 端口:3306
1.防火牆放出3306mysql
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload #重啓firewall firewall-cmd --list-ports #查看已經開放的端口
2.主
配置:sql
#vim /etc/my.cnf [mysqld] log-bin = mylog //master必寫 server-id = 1 //master必寫 建立帳戶://主服務器上建立帳戶 mysql> grant replication slave,reload,super on *.* to 'slave'@'%' identified by '123'; mysql> flush privileges; %在工做環境當中換成slave的主機名稱或者IP地址 密碼採用複雜密碼 重啓服務: #/etc/init.d/mysqld restart //rhel6 #systemctl restart mysqld //rhel7 注意:若是不成功刪除之前的binlog日誌 replication slave: 擁有此權限能夠查看從服務器,從主服務器讀取二進制日誌。 super權限: 容許用戶使用修改全局變量的SET語句以及CHANGE MASTER語句 reload權限: 必須擁有reload權限,才能夠執行flush [tables | logs | privileges] 3.從 安裝軟件 配置: #vim /etc/my.cnf [mysqld] server-id = 2 log-bin=s1log //1.雙主的時候必須寫 2.gtid方式的ab複製必須寫 啓動服務: #/etc/init.d/mysqld start /rhel5/6 #systemctl restart mysqld //rhel7 指定主服務器信息: 先去主服務器查看日誌信息: mysql > show master status \G 從服務器上指定: mysql> CHANGE MASTER TO MASTER_HOST='10.1.31.161', //主服務器IP MASTER_USER='vnum', //主服務器用戶 MASTER_PASSWORD='vnum@123', //用戶密碼 MASTER_PORT=3306, //端口 MASTER_LOG_FILE='mylog.001', //binlog日誌文件名稱 MASTER_LOG_POS=154, //日誌位置 MASTER_CONNECT_RETRY=10; //若是同步失敗的嘗試次數 啓動slave服務: mysql > start slave; //關閉:stop slave mysql > show slave status; 測試: 登陸slave mysql> show slave status \G 若是沒成功:刪除從的binlog重啓服務 錯誤分析: Slave_IO_Running: Connecting 1.網絡不通 2.帳戶密碼錯誤 3.防火牆 4.mysql配置文件問題 5.鏈接服務器時語法 6.主服務器mysql權限 Slave_IO_Running: No 1.網絡不通 2.mysql配置文件問題 3.mysql權限