您好,登錄后才能下訂單哦!
一、概述:
MYSQL主從同步架構是目前使用最多的數據庫架構之一,主從同步使得數據可以從一個數據庫服務器復制到其他服務器上,在復制數據時,一個服務器充當主服務器(master),其余的服務器充當從服務器(slave)。
二、拓撲圖說明:
如上圖所示,192.168.4.10(主機名為"10.mysql")作為MySQL主數據庫,192.168.4.20(主機名為"20.mysql")作為MySQL從數據庫,負責從主數據庫同步數據。
三、主從同步配置說明:
1、Master配置
(1)數據庫授權:
mysql> grant replication slave on *.* to slaveuser@"192.168.4.12" identified by "123456";
(2)啟用binlog日志:
[root@10 ~]# vim /etc/my.conf
[mysqld]
server_id=10 #指定主MySQL數據庫的ID
log-bin=master10 #啟用binglog日志,日志文件保存在MySQL的安裝主目錄(/var/lib/mysql)下,文件名的格式為"master22.000001"(每個文件最大容量500M,超過500M或者重啟MySQL服務后自動生成下一個日志文件)
(3)查看master狀態:
mysql>show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| master10.000001 | 154 | | | |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
2、Slave配置:
(1)配置server_id:
[root@20 ~]# vim /etc/my.conf
[mysqld]
server_id=20 #指定從MySQL數據庫的ID
(2)配置主數據庫信息(使用本機的root用戶登陸)
mysql>change master to master_host="192.168.4.10",
master_user="slaveuser",
master_password="123456",
matser_log_file="master10.000001",
master_log_pos=154;
(3)開啟slave狀態
mysql> start slave;
(4)檢查slave狀態
mysql> show slave status\G;
命令執行結果中下面兩項顯示如下則說明主從同步配置正常
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
3、驗證:
在主數據庫(192.168.4.10)上面進行數據添加刪除等操作,在從數據庫上面(192.168.4.20)及時就能看到。
三、原理說明:
(1)從數據庫的IO線程讀取主數據庫的binlog日志,寫入到從數據庫的中繼日志文件中,從數據庫的SQL線程從本機的中繼日志中讀取SQL命令在本機執行,完成數據同步;
(2)如果主從數據庫配置前數據不一致,SQL線程就會報錯;如果在主數據庫創建授權用戶出錯,導致從數據庫無法連接主數據庫,IO線程就會報錯;
(3)當從數據庫的SQL線程執行中繼日志里面的SQL命令失敗的時候,SQL線程會立即宕掉。
需要注意的是在配置MySQL主從數據庫之前,確保從數據庫的數據不能多于主數據庫的數據。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。