溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql主從數據庫(Master/Slave)同步配置與常見錯誤

發(fā)布時間:2020-09-20 04:08:02 來源:腳本之家 閱讀:252 作者:CODETC 欄目:MySQL數據庫

隨著訪問量的增加,對于一些比較耗時的數據庫讀取操作,一般采用將寫入與讀取操作分開來緩解數據庫的壓力,數據庫引擎一般采用Master/Slave架構。實現mysql服務器的主從配置,可以實現讀寫分離,另外在主數據庫崩潰后可以從備用數據庫中恢復數據以不至于網站中斷訪問。下面簡單說下mysql主從服務器配置的過程。

首先需要在同一個局域網內的兩臺機器(當然也可以用一臺機器虛擬兩臺機器出來),都安裝上mysql服務。

主機A: 192.168.1.100

從機B: 192.168.1.101

可以有多臺從機。

1、先登錄主機 A,執(zhí)行如下命令賦予從機權限,如果有多臺叢機,就執(zhí)行多次:

mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.101' IDENTIFIED BY '123456';

2、 打開主機A的my.cnf,輸入如下配置參數:

server-id = 1 #主機標示,整數
log_bin = /var/log/mysql/mysql-bin.log #確保此文件可寫
read-only =0 #主機,讀寫都可以
binlog-do-db =test #需要備份數據,多個寫多行
binlog-ignore-db =mysql #不需要備份的數據庫,多個寫多行

3、打開從機B的my.cnf,輸入如下配置參數:

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果從服務器發(fā)現主服務器斷掉,重新連接的時間差(秒)
replicate-do-db =test #只復制某個庫
replicate-ignore-db=mysql #不復制某個庫

4、同步數據庫

進過以上的配置,分別重啟主機A和從機B,即可自動實現同步。

5、驗證

在主機A中,mysql>show master status\G;

能看到大致這些內容

File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql

在從機B中,mysql>show slave status\G;

顯示內容如下圖所示:

Mysql主從數據庫(Master/Slave)同步配置與常見錯誤

可以看到Slave_IO_State項為Waiting for master to send event且紅圈中兩項皆為Yes,那么基本上可以確定是配置成功了

另外可以在主機A中,做一些INSERT, UPDATE, DELETE 操作,看看主機B中,是否已經被修改。

常見錯誤

1、master發(fā)生故障,經修復后啟動后,slave無法與master同步

報錯:Got fatal error 1236 from master when reading data from binary log

原因:master重啟后,mysql的binlog會重新生成,相應的記錄位置會改變

解決方法:

-master:

mysql > flush logs;
mysql > show master status;

記錄下File和Position值

-slave:

mysql > stop slave;
mysql > CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000049',MASTER_LOG_POS=1359;
mysql > start slave;
mysql > show slave status\G;

2、slave發(fā)生故障,設置正確,但是無法初始化

報錯:ERROR 1201 (HY000): Could not initialize master

解決方法:

-master:

mysql > flush logs;
mysql > show master status;

記錄下File和Position值

-slave:

mysql > reset slave;
mysql > change master to master_host='192.168.10.100',master_user='test',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=106;
mysql > start slave;
mysql > show slave status\G;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI