溫馨提示×

溫馨提示×

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

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

MySQL數(shù)據(jù)庫之主從同步

發(fā)布時間:2020-06-30 14:38:22 來源:網(wǎng)絡(luò) 閱讀:27748 作者:紫玉麒麟 欄目:MySQL數(shù)據(jù)庫

一、概述:

MYSQL主從同步架構(gòu)是目前使用最多的數(shù)據(jù)庫架構(gòu)之一,主從同步使得數(shù)據(jù)可以從一個數(shù)據(jù)庫服務(wù)器復(fù)制到其他服務(wù)器上,在復(fù)制數(shù)據(jù)時,一個服務(wù)器充當主服務(wù)器(master),其余的服務(wù)器充當從服務(wù)器(slave)。

二、拓撲圖說明:

MySQL數(shù)據(jù)庫之主從同步

如上圖所示,192.168.4.10(主機名為"10.mysql")作為MySQL主數(shù)據(jù)庫,192.168.4.20(主機名為"20.mysql")作為MySQL從數(shù)據(jù)庫,負責(zé)從主數(shù)據(jù)庫同步數(shù)據(jù)。

三、主從同步配置說明:

1、Master配置

  (1)數(shù)據(jù)庫授權(quán):

      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數(shù)據(jù)庫的ID
      log-bin=master10     #啟用binglog日志,日志文件保存在MySQL的安裝主目錄(/var/lib/mysql)下,文件名的格式為"master22.000001"(每個文件最大容量500M,超過500M或者重啟MySQL服務(wù)后自動生成下一個日志文件)

    (3)查看master狀態(tài):

       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數(shù)據(jù)庫的ID

    (2)配置主數(shù)據(jù)庫信息(使用本機的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狀態(tài)
             mysql> start slave;
     (4)檢查slave狀態(tài)
             mysql> show slave status\G;

        命令執(zhí)行結(jié)果中下面兩項顯示如下則說明主從同步配置正常
               Slave_IO_Running:Yes
               Slave_SQL_Running:Yes

3、驗證:

    在主數(shù)據(jù)庫(192.168.4.10)上面進行數(shù)據(jù)添加刪除等操作,在從數(shù)據(jù)庫上面(192.168.4.20)及時就能看到。

三、原理說明:

     (1)從數(shù)據(jù)庫的IO線程讀取主數(shù)據(jù)庫的binlog日志,寫入到從數(shù)據(jù)庫的中繼日志文件中,從數(shù)據(jù)庫的SQL線程從本機的中繼日志中讀取SQL命令在本機執(zhí)行,完成數(shù)據(jù)同步;
     (2)如果主從數(shù)據(jù)庫配置前數(shù)據(jù)不一致,SQL線程就會報錯;如果在主數(shù)據(jù)庫創(chuàng)建授權(quán)用戶出錯,導(dǎo)致從數(shù)據(jù)庫無法連接主數(shù)據(jù)庫,IO線程就會報錯;
     (3)當從數(shù)據(jù)庫的SQL線程執(zhí)行中繼日志里面的SQL命令失敗的時候,SQL線程會立即宕掉。

      需要注意的是在配置MySQL主從數(shù)據(jù)庫之前,確保從數(shù)據(jù)庫的數(shù)據(jù)不能多于主數(shù)據(jù)庫的數(shù)據(jù)。

向AI問一下細節(jié)

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

AI