MySQL主從複製小結

MySQL主從複製小結mysql

兩臺服務器做此實驗,信息以下:sql

IP                                       機器名稱                            操做系統版本                            數據庫版本數據庫

192.168.101.81                  my-master                         Centos7.5_64                            mysql 5.7vim

192.168.101.82                  my-slave                            Centos7.5_64                            mysql 5.7安全

1、mysql的經典主從複製服務器

      一、初始化環境(兩臺機器上都操做)網絡

    a)安裝相關的環境包:yum –y install vim wget lrzsz ntpdate多線程

    b)同步時間:ntpdate -u times.aliyun.com併發

    c)上傳mysql80-community-release-el7-1.noarch到服務器上ide

    d) rpm -ivh mysql80-community-release-el7-1.noarch.rpm

    e) vim /etc/yum.repos.d/mysql-community.repo

    將mysql8.0的enable=1修改成enable=0;而後將將mysql5.7的enable=0修改成enable=1

    f)安裝數據庫 yum clean all && yum makecache fast  && yum -y install mysql mysql-devel mysql-server

    g)systemctl start mysqld && systemctl enable mysqld

    h)grep password /var/log/mysql.log中找到密碼,而後用找到的密碼登陸數據庫: mysql –u root –p   回車後輸入初始化安裝mysql生成的密碼

    i)登陸後用alter user ‘root’@ ‘localhost’identified by ‘新密碼’;來修改密碼

    g)用mysql_secure_installation命令根據提示對數據庫作安全,一路回車

      二、在主庫my-master上操做以下

          a)修改主機名:hostname my-master && echo ‘my-master’> /etc/hostname  退出後從新登陸就能夠了

    b)登陸數據庫(mysql –u root –p新密碼)後對從服務器同步用戶受權:  grant replication  slave  on *.* to ‘wangtao’@’192.168.101.82’identified by ‘Wangta0+007’;

          c)編輯/etc/my.cnf文件在[mysqld]中加入如下內容

              server-id=81              

              log-bin=mysql-bin       

              binlog-ignore-db=mysql

    d) systemctl restart mysqld

    e)登陸數據庫(mysql –u root –p新密碼)後用’show master status ;’查看信息

image.png

三、在主庫my-slave上操做以下:

           a)修改主機名:hostname my-slave && echo ‘my-slave’> /etc/hostname  退出後從新登陸就能夠了

           b)編輯/etc/my.cnf文件在[mysqld]中加入如下內容

              server-id=82              必須爲 1 到 232–1 之間的一個正整數值

              read-only                            只讀設置

           c) systemctl restart mysqld

           d) 登陸數據庫(mysql –u root –p新密碼)設置同步

              change master to master_host='192.168.101.81',master_user='wangtao' , master_password=' Wangta0+007',master_log_file='mysql-bin.000003',master_log_pos=106;

        start slave;

           e)查看同步狀態

              show slave status \G;  當Slave_IO_Running: Yes 與Slave_SQL_Running: Yes  說明同步成功

      四、插入測試數據測試(略)

2、mysql的gtid主從複製

      一、初始化環境(兩臺機器上都操做)

    a)安裝相關的環境包:yum –y install vim wget lrzsz ntpdate

    b)同步時間:ntpdate -u times.aliyun.com

    c)上傳mysql80-community-release-el7-1.noarch到服務器上

    d) rpm -ivh mysql80-community-release-el7-1.noarch.rpm

    e) vim /etc/yum.repos.d/mysql-community.repo

將mysql8.0的enable=1修改成enable=0;而後將將mysql5.7的enable=0修改成enable=1

    f)安裝數據庫 yum clean all && yum makecache fast  && yum -y install mysql mysql-devel mysql-server

    g)systemctl start mysqld && systemctl enable mysqld

    h)grep password /var/log/mysql.log中找到密碼,而後用找到的密碼登陸數據庫: mysql –u root –p   回車後輸入初始化安裝mysql生成的密碼

    i)登陸後用alter user ‘root’@ ‘localhost’identified by ‘新密碼’;來修改密碼

    g)用mysql_secure_installation命令根據提示對數據庫作安全,一路回車

      二、在主庫my-master上操做以下

          a)修改主機名:hostname my-master && echo ‘my-master’> /etc/hostname  退出後從新登陸就能夠了

    b)登陸數據庫(mysql –u root –p新密碼)後對從服務器同步用戶受權:  grant replication  slave  on *.* to ‘wangtao’@’192.168.101.82’identified by ‘Wangta0+007’;

          c)編輯/etc/my.cnf文件在[mysqld]中加入如下內容

             server-id=81

 gtid-mode=ON

 enforce-gtid-consistency

 log-bin=mysql-bin

 log-slave-updates

 binlog_ignore_db=mysql

    d) systemctl restart mysqld

    e)登陸數據庫(mysql –u root –p新密碼)後用’show master status ;’查看信息

image.png

      三、在主庫my-slave上操做以下:

           a)修改主機名:hostname my-slave && echo ‘my-slave’> /etc/hostname  退出後從新登陸就能夠了

           b)編輯/etc/my.cnf文件在[mysqld]中加入如下內容

              server-id=82

  gtid-mode=ON

  enforce-gtid-consistency

  read-only             只讀設置

  log-slave-updates                      

           c) systemctl restart mysqld

           d) 登陸數據庫(mysql –u root –p新密碼)設置同步

              change master to master_host='192.168.101.81',master_user='wangtao' , master_password=' Wangta0+007', master_auto_position=1;

              start slave;

           e)查看同步狀態

              show slave status \G;  當Slave_IO_Running: Yes 與Slave_SQL_Running: Yes  說明同步成功

3、GTID與經典主從的區別

1.不用手動定位pos和binlog的位置,添加參數master_auto_position=1便可 

2.多線程併發複製,Slave-parallel-workers=0,1,2(禁用,單線程,兩個線程)

master數據庫有改動,好比DML,存入bin-log中,

備份到主數據庫中,網絡I/O纔去master給slave去取數據

因此經典模式下通常手動設置給slave備份,由於必定要保證主被數據同樣,自動容易出問題。

推薦使用mysql5.7

       下篇博文引入mariadb gelare cluster同步,請你們多多指教!

相關文章
相關標籤/搜索