Mysql 主從同步配置執行個體

來源:互聯網
上載者:User

標籤:mysql主從同步


*兩台Linux伺服器,一主一從,從資料庫同步主要資料庫的資料

*系統:Centos 6.4-64bit

*主(master)資料庫伺服器IP地址:192.168.100.200

*從 (slave )資料庫伺服器IP地址:192.168.100.201

*本實驗用系統內建的rpm包安裝,以提供mysql服務


1、分別在兩台伺服器上安裝mysql服務

# yum -y install mysql mysq-server

# service mysqld start

# chkconfig mysqld on


2、配置主要資料庫

 預設可以同步所有的庫和表

# vi /etc/my.cnf    #添加如下參數

log-bin=mysqld-bin   #開啟binlog日誌,必須開啟

server_id=200     #資料庫ID值,唯一的,一般用原生IP地址主機位

binlog-do-db=test    #設定從伺服器可以同步的庫test,有多個就寫多行

binlog-ignore-db=mysql #設定不可以同步的庫mysql


# service mysqld restart #重啟服務


3、在主要資料庫授權從資料庫串連自己,且有拷貝資料的許可權

     登入到主伺服器並授權,授權的使用者名稱是slaveuser,密碼是123456

     mysql>grant replication slave on *.* to [email protected] identified by‘123456‘;


4、在從伺服器上驗證授權是否成功

 在從資料庫上若能登入到主要資料庫,則說明授權成功了

# mysql -h192.168.100.200 -uslaveuser -p123456

mysql> show grants;              #查看使用者slaveuser自己被授的許可權

+---------------------------------------------------------------------------+

| Grants for [email protected]  |

+---------------------------------------------------------------------------+

| GRANT REPLICATION SLAVE ON *.* TO ‘slaveuser‘@‘192.168.100.201‘ IDENTIFIED BY PASSWORD ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘ |

+---------------------------------------------------------------------------+


5、查看主要資料庫伺服器上有哪些從伺服器

  mysql> show slave hosts;    #從資料庫還沒配置,所以還看不到


6、配置從資料庫

# vi /etc/my.cnf         #添加如下參數

log-bin=mysqld-bin        #開啟binlog日誌

server_id=201          #資料庫ID號

report-host=localhost      #向主伺服器報告自己主機名稱,主伺服器查詢時會知道是哪個從伺服器

report-host=192.168.100.201  #向主伺服器報告自己IP,主伺服器查詢時會知道是哪個從伺服器

slave-net-timeout=60       #主從網路中斷時,等待60秒自動連接

read_only=1             #唯讀模式(同步與super許可權使用者例外)


註:若想限制同步的庫,參數格式如下

replicate-do-db=“資料庫名”       #允許同步的庫

replicate-ignore-db=“資料庫名”    #不允許同步的庫


# service mysqld restart  


重啟完從資料庫,此時,就可以登入主要資料庫查看主要資料庫伺服器上有哪些從伺服器,如下

mysql> show slave hosts;

+-----------+-----------------+------+-------------------+-----------+

| Server_id | Host        | Port | Rpl_recovery_rank | Master_id |

+-----------+-----------------+------+-------------------+-----------+

| 201     | 192.168.100.201 | 3306 |       0     |    200  |

+-----------+-----------------+------+-------------------+-----------+


7、登入主要資料庫,查看主要資料庫狀態裡當前使用的binlog和位移量

mysql> show master status;    #顯示主要資料庫伺服器的狀態

+-------------------+----------+--------------+------------------+

| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-------------------+----------+--------------+------------------+

| mysqld-bin.000004 | 120    |          |            |

+-------------------+----------+--------------+------------------+


File和Postion對應的值mysqld-bin.000004和334要記錄下來,下面步驟要用到


說明:

File           #正在使用的binlog日誌

Position         #正在使用binlog日誌的位移量,含義是從位移量位置120開始記錄

Binlog_DO_DB      #顯示准許同步複製的庫

Binlog_Ignore_DB   #顯示不準許同步複製的庫

Executed_Gtid_Set  #跟binlog日誌相似,都是用來主從同步的,預設關閉,兩個用一個就可以.

開啟Gtid:       #沒特殊要求不開啟

vim  /etc/my.cnf

gtid_mode=on


8、從資料庫連接主要資料庫(從資料庫上操作)

mysql>change master to

    ->master_host="192.168.100.200",       #主要資料庫的IP地址

    ->master_user="slaveuser",           #主要資料庫上授權的使用者

    ->master_password="123456",          #授權使用者的密碼

    ->master_log_file="localhost-bin.000001", #上一步中File欄位裡的binlog日誌

    ->master_log_pos=120;              #上一步中Postion欄位裡的位移量


操作完以上命令,/var/lib/mysql/下會產生4個檔案

ls /var/lib/mysql

master.info              #串連主要資料庫伺服器的配置資訊

relay-log.info          #中繼日誌資訊

localhost-relay-bin.000001    #中繼記錄檔,是主複製過來的記錄檔叫中繼

localhost-relay-bin.index     #中繼記錄檔列表


9、登入從資料庫,開啟從資料庫裡的server_IO與server_SQL進程

mysql>start slave;      #開啟I0和SQL(停止用:stop slave)

mysql>show slave status\G; #查看I0和SQL進程狀態


Slave_IO_Running:  YES   #必須開啟狀態

Slave_SQL_Running:  YES  #必須開啟狀態


>只有IO-Running和SQL_Running同時為YES,主從才能同步

>執行start slave後,若Slave_IO_Running還是NO狀態,1分鐘後再查看


10、驗證主從是否能同步

登入主要資料庫並在庫test下建立表student

mysql>use test;

mysql>create table student(name char(3),birthday date); #建立表student

mysql> desc student;                        #查看錶結構

+----------+---------+------+-----+---------+-------+

| Field   | Type    | Null | Key | Default | Extra |

+----------+---------+------+-----+---------+-------+

| name    | char(3) | YES  |     | NULL |      |

| birthday | date    | YES  |     | NULL|      |

+----------+---------+------+-----+---------+-------+


登入從資料庫,查看是否同步了主要資料庫建立的表student,如下所示,說明主從能同步了。

mysql>use test;

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| student     |

+----------------+


完畢,謝謝。

本文出自 “Dave-技術部落格” 部落格,請務必保留此出處http://davewang.blog.51cto.com/6974997/1858470

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.