<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Docker Mysql數據庫主從同步配置方法

       一、背景

      最近在做內部平臺架構上的部署調整,順便玩了一下數據庫的主從同步,特此記錄一下操作~

       

      二、具體操作

      1、先建立數據存放目錄(~/test/mysql_test/)

      --mysql
         --master
            --data  
            --conf
               --my.cnf     
         --slave
            --data  
            --conf
               --my.cnf

       

      2、Master my.cnf配置文件

      [mysqld]
      server_id = 1
      
      log-bin= mysql-bin
      
      read-only=0
      
      
      replicate-ignore-db=mysql
      
      replicate-ignore-db=sys
      
      replicate-ignore-db=information_schema
      
      replicate-ignore-db=performance_schema
      
      
      !includedir /etc/mysql/conf.d/
      
      !includedir /etc/mysql/mysql.conf.d/

       

      3、Slave my.cnf配置文件

      [mysqld]
      server_id = 2
      
      log-bin= mysql-bin
      
      read-only=1
      
      
      replicate-ignore-db=mysql
      
      replicate-ignore-db=sys
      
      replicate-ignore-db=information_schema
      
      replicate-ignore-db=performance_schema
      
      
      
      !includedir /etc/mysql/conf.d/
      
      !includedir /etc/mysql/mysql.conf.d/

       

      4、創建master主容器

      docker run --name mastermysql -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -v ~/test/mysql_test/master/data:/var/lib/mysql -v ~/test/mysql_test/master/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7

       

      5、創建slave從容器

      docker run --name slavemysql -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root -v ~/test/mysql_test/slave/data:/var/lib/mysql -v ~/test/mysql_test/slave/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7

       

      6、master容器設置

      //進入master容器
      
      docker exec -it mastermysql bash
      
       
      //啟動mysql命令,剛在創建窗口時我們把密碼設置為:root
      
      mysql -u root -p
      
       
      //創建一個用戶來同步數據,每個slave使用標準的MySQL用戶名和密碼連接master。進行復制操作的用戶會授予REPLICATION SLAVE 權限。
      
      CREATE USER 'slave'@ '%' IDENTIFIED BY '123456';  (其實可省略)
      GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
      
      //這里表示創建一個slaver同步賬號slave,允許訪問的IP地址為%,%表示通配符
      
       
      //查看狀態,記住File、Position的值,在Slave中將用到
      show master status/G;

       

      7、slave容器設置

      //進入slaver容器
      docker exec -it slavemysql bash
      
      //啟動mysql命令,剛在創建窗口時我們把密碼設置為:root
      mysql -u root -p
      
      //設置主庫鏈接
      change master to master_host='172.17.0.2',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3306;
      
      //啟動從庫同步
      start slave;
      
      //查看狀態
      show slave status\G;

       

      如果 show slave status\G命令結果中出現:
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      以上兩項都為Yes,那說明沒問題了。

       

      三、注意事宜

      1,首先在主從沒有生效的時候,要保持兩臺服務器數據庫、表相同,數據相同
       
      master容器上執行:
      mysqldump -uroot -p --all-databases >/root/all_database.sql

       

      拷貝到slave容器中,在slave從庫上執行:
      mysql -uroot -p <all_database.sql
       
      如此兩步驟,主庫和從庫數據會追加相平,保持同步!
       
      再此過程中,若主庫存在業務,在同步的時候要先鎖表,讓其不要有修改!
       
      #如需要,可以master容器中,執行以下命令鎖定數據庫以防止寫入數據。
      
      mysql>FLUSH TABLES WITH READ LOCK;

       

      等待主從數據追平,主從同步后在打開鎖!

      #解鎖數據表。
      
      mysql>UNLOCK TABLES;

       

      主從數據追平后,定位好從庫到主庫日志的文件名字,和相應的位置

      master主庫運行:
      mysql> show master status\G;

       

      看到相應文件名字和位置!

       

      slave從庫運行:

      #設置主庫鏈接
      change master to master_host='172.17.0.9',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=2037,master_port=3306;
      
      #執行從庫同步
      start slave;
      
      #查看從庫同步狀態
      show slave status\G;

       在結果中看到:

                   Slave_IO_Running: Yes
                  Slave_SQL_Running: Yes
      即可成功同步!

       

      四、主從同步驗證

      注:在本次實驗中,由上述my.cnf配置文件可得知,主從同步針對的數據庫(除了mysql,sys,information_schema,performance_schema這些以外)的其它所有數據庫都會進行同步(含數據庫、表、數據等)

      1、如當前數據庫情況如下:

      2、在master主庫容器中,創建數據庫master_demo,并在此庫下創建表userinfo,并插入一條記錄

      create database master_demo;
      use master_demo;
      create table userinfo(username varchar(50),age int);
      insert into userinfo values('Tom',18);

       

      3、此時,進入從庫容器中,查看:

       

      確實已經將在master主庫新建的數據庫和表記錄都同步過來了。

       

      既然是主從同步,那反過來驗證一下,在從庫下插入記錄后,會不會同步到主庫中來呢?

      在從庫上操作插入記錄:

      insert into userinfo values('slave',20);

      查看: 

       

      切到master主庫中,查看:

      發現在master主庫中,還是只有一條記錄,說明與預期設想的一樣,在從庫中插入記錄,是不會同步到master主庫中來的

       

      再來一波,在主庫master上,插入新記錄:

      insert into userinfo values('master',25);

       

      在從庫中,查看

       

      發現在master主庫中新加入的master記錄,在從庫中同步過來了。

       

      到此,基于docker mysql數據庫的主從同步配置,驗證到此結束,命令、配圖給的如此詳細,來點個贊吧~

       

      posted @ 2018-07-12 14:26  狂師  閱讀(4478)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产在线无码视频一区二区三区| 国内揄拍国内精品对久久| 视频一区二区三区在线视频| 亚洲国产成人AⅤ片在线观看| 国产中文字幕精品喷潮| 国产精品视频白浆免费视频| 大胸美女吃奶爽死视频| 人人爽亚洲aⅴ人人爽av人人片| 国产精品一二三区蜜臀av| 欧美人与动牲交A免费观看| 成av人电影在线观看| 亚洲国产激情一区二区三区| 国产成人精品午夜二三区 | 国产国产精品人体在线视| 嫩草研究院久久久精品| 国内免费视频成人精品| 亚洲男人天堂av在线 | 九九热精品在线观看视频| 亚洲一本二区偷拍精品| 久久热这里这里只有精品| 国产av午夜精品福利| 欧美成人精品三级在线观看| 国产一区二区亚洲一区二区三区| 国产精品中文字幕av| 波多野结衣久久一区二区| 秋霞电影院午夜无码免费视频| 白丝乳交内射一二三区| 久久精品国产精品亚洲综合| 日本一道一区二区视频| 亚洲免费福利在线视频| 久久精品一本到99热免费| 色老99久久精品偷偷鲁| 久久亚洲国产成人亚| 亚洲色婷婷综合开心网| av日韩在线一区二区三区| www插插插无码视频网站| 国模雨珍浓密毛大尺度150p| 中文字幕久久六月色综合| 国产乱码精品一区二三区| 爱色精品视频一区二区| 美女一区二区三区亚洲麻豆|