MYSQL設定主從同步

來源:互聯網
上載者:User

標籤:mysql   資料庫同步   主從   

    首先,我們先拿兩台伺服器安裝好相同版本相同設定的MYSQL資料庫。我這裡安裝的是mariadb-10.0.13資料庫。

第一步,環境設定:

    我這邊設定的是兩台內網伺服器,主伺服器IP:10.6.0.187;從伺服器IP10.6.0.186

    系統:CentOS 7

    資料庫版本:mariadb-10.0.13

 

第二步:配置mysql主伺服器(10.6.0.187)

    mysql  -uroot  -p123456    #進入MySQL控制台
    create database zabbix default charset utf8;  

    #建立資料庫zabbix
    insert into mysql.user(Host,User,Password) values(‘localhost‘,‘slave2‘,password(‘123456‘));   

    #建立使用者slave2

    #建立MySQL主從資料庫同步處理的使用者slave2密碼123456 

    flush privileges;   #重新整理系統授權表

    #授權使用者slave2隻能從10.6.0.186這個IP訪問主伺服器10.6.0.187上面的資料庫,並且只具有Database Backup的許可權
    grant replication slave  on *.* to ‘ slave2‘@‘10.6.0.186‘identified by ‘123456‘ with grant option; 

第三步:將主伺服器中的資料庫匯出,並匯入到從伺服器的資料庫中去

    1、匯出資料庫zabbix

    mysql dump-u root -p123456 zabbix> /root/zabbix.sql   #在MySQL主伺服器進行操作,匯出資料庫zabbix到/root/zabbix.sql 

    備忘:在匯出之前可以先進入MySQL控制台執行下面命令

    flush tables with read lock;    #資料庫唯讀鎖定命令,防止匯出資料庫的時候有資料寫入

    unlocktables;   #解除鎖定

    2、匯入資料庫到MySQL從伺服器

    mysql -uroot-p123456  #進入從伺服器MySQL控制台

    create database zabbix default charset utf8;   #建立資料庫

    mysqldump -u root -p123456 zabbix< /root/zabbix.sql

   mysql -uslave2 -h192.168.21.169 -p  #測試是否能從從伺服器上登入到主伺服器

 

第四步:修改主要資料庫的設定檔

vi/etc/my.cnf   #編輯設定檔

server-id=1   #設定伺服器id,為1表示主伺服器,給 slave 指定唯一的server_id. 所有伺服器,不管是主伺服器,還是從伺服器,都要設定 server_id. server_id值可以是整數型的數字(1 ~ 2^31-1),在同一個複製組(replicating group)中的每台(/個)伺服器的server_id都必須是唯一的.
log_bin=mysql-bin  #啟動MySQ二進位日誌系統,注意:如果原來的設定檔中已經有這一行,就不用再添加了。
binlog-do-db=zabbix  #需要同步的資料庫名,如果有多個資料庫,可重複此參數,每個資料庫一行
binlog-ignore-db=mysql   #不同步mysql系統資料庫
service mysqld restart  #重啟MySQL
mysql -uroot -p   #進入mysql控制台
show master status;  查看主伺服器,出現以下類似資訊

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/E9/wKioL1U6D5awMOaqAAFzU-ZJeKc466.jpg" title="image001.png" alt="wKioL1U6D5awMOaqAAFzU-ZJeKc466.jpg" />

注意:這裡記住File的值:mysql-bin.000035和Position的值:1218606,後面會用到。

五、配置MySQL從伺服器的my.cnf檔案
vi/etc/my.cnf   #編輯設定檔
server-id=2   #設定檔中已經有一行server-id=1,修改其值為2,表示為從資料庫
log-bin=mysql-bin  #啟動MySQ二進位日誌系統,注意:如果原來的設定檔中已經有這一行,就不用再添加了。
replicate-do-db=zabbix   #需要同步的資料庫名,如果有多個資料庫,可重複此參數,每個資料庫一行
replicate-ignore-db=mysql   #不同步mysql系統資料庫
:wq!    #儲存退出
service mysqld restart   #重啟MySQL
mysql  -u root -p  #進入MySQL控制台
stop slave;   #停止slave同步進程
change master to master_host=‘10.6.0.187‘,master_user=‘slave2‘,master_password=‘123456‘,master_log_file=‘ mysql-bin.000035‘ ,master_log_pos=1218606;    #執行同步語句
start slave;    #開啟slave同步進程
SHOW SLAVE STATUS\G   #查看slave同步資訊,出現以下內容
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/ED/wKiom1U6DkSy1ol2AAOdtr9P5Hc664.jpg" title="image003.png" alt="wKiom1U6DkSy1ol2AAOdtr9P5Hc664.jpg" />

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running:Yes

以上這兩個參數的值為Yes,即說明配置成功!

第六步:測試mysql主從是否能夠同步

進入主mysql中的zabbix庫中,建立一張新表

use zabbix;

create table test (`id` int(4), `name` char(40));

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6B/E9/wKioL1U6D7WTKzSgAAF0bdn5yyw893.jpg" title="image005.png" alt="wKioL1U6D7WTKzSgAAF0bdn5yyw893.jpg" />

這是主mysql中建立的表;

在從mysql中查看是否同步過來了這張表

use zabbix;

show tables;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6B/ED/wKiom1U6Dmez6FJSAAE5U6T661o694.jpg" title="image007.png" alt="wKiom1U6Dmez6FJSAAE5U6T661o694.jpg" />

這裡我們看到已經同步過來了,至此,mysql主從同步實驗做完了。

    在此,感謝網上大神們的教程,讓我成功的完成了mysql主從配置。互連網的精神就是共用,在此我將我配置mysql主從中得經驗分享給大家,以供我們大家共同學習,共同成長。

本文出自 “檸檬” 部落格,請務必保留此出處http://xianglinhu.blog.51cto.com/5787032/1638105

MYSQL設定主從同步

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.