<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      詳細說明Mysql主從同步設置示例代碼

      [摘要]這篇文章主要介紹了詳解Mysql主從同步實戰,實例分析了Mysql主從同步的原理和實現,非常具有實用價值,需要的朋友可以參考下。1、Introduction之前寫過一篇文章:Mysql主從同步的原理。相信看過這篇文章的童鞋,都摩拳擦掌,躍躍一試了吧?今天我們就來一次mysql主從同步實戰!2、環境...
      這篇文章主要介紹了詳解Mysql主從同步實戰,實例分析了Mysql主從同步的原理和實現,非常具有實用價值,需要的朋友可以參考下。

      1、Introduction

      之前寫過一篇文章:Mysql主從同步的原理。

      相信看過這篇文章的童鞋,都摩拳擦掌,躍躍一試了吧?

      今天我們就來一次mysql主從同步實戰!

      2、環境說明

      os:ubuntu16.04

      mysql:5.7.17

      下面的實戰演練,都是基于上面的環境。當然,其他環境也大同小異。

      3、進入實戰

      工具

      2臺機器:

      master IP:192.168.33.22

      slave IP:192.168.33.33

      master機器上的操作

      1、更改配置文件

      我們找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf

      配置如下:


      bind-address = 192.168.33.22 #your master ip
      server-id = 1 #在master-slave架構中,每臺機器節點都需要有唯一的server-id
      log_bin = /var/log/mysql/mysql-bin.log #開啟binlog

      2、重啟mysql,以使配置文件生效。


      sudo systemctl restart mysql

      3、創建主從同步的mysql user。


      $ mysql -u root -p
      Password:
      
      ##創建slave1用戶,并指定該用戶只能在主機192.168.33.33上登錄。
      mysql> CREATE USER 'slave1'@'192.168.33.33' IDENTIFIED BY 'slavepass';
      Query OK, 0 rows affected (0.00 sec)
      
      ##為slave1賦予REPLICATION SLAVE權限。
      mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.33.33';
      Query OK, 0 rows affected (0.00 sec)

      4、為MYSQL加讀鎖

      為了主庫與從庫的數據保持一致,我們先為mysql加入讀鎖,使其變為只讀。


      mysql> FLUSH TABLES WITH READ LOCK;
      Query OK, 0 rows affected (0.00 sec)

      5、記錄下來MASTER REPLICATION LOG 的位置

      該信息稍后會用到。


      mysql> SHOW MASTER STATUS;
      +------------------+----------+--------------+------------------+-------------------+
        File      Position   Binlog_Do_DB   Binlog_Ignore_DB   Executed_Gtid_Set  
      +------------------+----------+--------------+------------------+-------------------+
        mysql-bin.000001    613                   
      +------------------+----------+--------------+------------------+-------------------+
      1 row in set (0.00 sec)

      6、將master DB中現有的數據信息導出


      $ mysqldump -u root -p --all-databases --master-data > dbdump.sql

      7、接觸master DB的讀鎖


      mysql> UNLOCK TABLES;

      8、將步驟6中的dbdump.sql文件copy到slave


      scp dbdump.sql ubuntu@192.168.33.33:/home/ubuntu

      slave機器上的操作

      1、更改配置文件

      我們找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf

      更改配置如下:


      bind-address = 192.168.33.33 #your slave ip
      server-id = 2 #master-slave結構中,唯一的server-id
      log_bin = /var/log/mysql/mysql-bin.log #開啟binlog

      2、重啟mysql,以使配置文件生效


      sudo systemctl restart mysql

      3、導入從master DB。 導出的dbdump.sql文件,以使master-slave數據一致


      $ mysql -u root -p < /home/ubuntu/dbdump.sql

      4、使slave與master建立連接,從而同步


      $ mysql -u root -p
      Password:
      
      mysql> STOP SLAVE;
      Query OK, 0 rows affected, 1 warning (0.00 sec)
      
      mysql> CHANGE MASTER TO
       -> MASTER_HOST='192.168.33.22',
       -> MASTER_USER='slave1',
       -> MASTER_PASSWORD='slavepass',
       -> MASTER_LOG_FILE='mysql-bin.000001',
       -> MASTER_LOG_POS=613;
      Query OK, 0 rows affected, 2 warnings (0.01 sec)
      
      mysql> START SLAVE;
      Query OK, 0 rows affected (0.00 sec)

      MASTER_LOG_FILE='mysql-bin.000001'與MASTER_LOG_POS=613的值,是從上面的 SHOW MASTER STATUS 得到的。

      經過如此設置之后,就可以進行master-slave同步了~

      以上就是詳解Mysql主從同步配置示例代碼的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清