配置mysql複製基本步驟

mysql主從複製的過稱其實是:將一臺服務器的數據複製到其他服務器上並重新執行一遍的。複製過程中一臺服務器當作主服務器(Master),一臺或多臺服務器當作從服務器(SLave).主服務器將更新寫入到二進制日誌文件,並維護一個索引以跟蹤日誌循環。這些日誌可以記錄發送給從服務器的更新,當一個從服務器連接到主服務器時,它通知主服務器從服務器在日誌中讀取的最後一次成功更新的位置,從服務器接收從那時起的任何更新,然後封鎖並等待主服務器通知新的更新。

整體上分爲三個步驟:

1.master將改變記錄到日誌文件(binary log)中

2.slave複製二進制日誌事件(binary log event)到中繼日誌(relay log)中

3.slave重做中繼日誌,將改變轉化成自己的數據

0_1330439010P7lI.gif

環境:

系統:centos6.3

Master:10.10.0.224

Slave:10.10.0.226


1.創建備份帳號,只允許從服務器有權限

mysql> grant all privileges on *.* to [email protected] identified by '123456';

mysql> flush privileges;


2.拷貝數據

停掉mysql服務或者鎖表,將master中的數據拷貝到slave中,保證兩邊數據的一致,並且確保數據同步結束之前禁止在master和slave進行寫操作!

mysql> flush tables with read lock;    #鎖表

mysql> unlock tables;    #解鎖

3.配置master

# vim /etc/my.cnf

    #選擇唯一的server-id

    server-id = (0--2^32-1)

    #啓動二進制日誌

    log-bin = mysql-bin

    log-bin-index = mysql-bin.index

# service mysqld restart

# mysql

mysql> show master status;

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000004 |  3318591 |              |                  |

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

1 row in set (0.00 sec)


4.配置slave

# vim /etc/my.cnf

    server_id = 2

    log-bin = mysql-bin

    log-bin-index = mysql-bin.index

    relay-log = relay-log

    relay-log-index = relay-log.index


5.連接至主服務器並開始複製數據

mysql> stop slave;

mysql> change master to master_host='10.10.0.224',master_port='3306'master_user='backup',

master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=360;

mysql> start slave;

mysql> show slave status\G;

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 10.10.0.224

                  Master_User: backup

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000005

          Read_Master_Log_Pos: 360

               Relay_Log_File: relay-log.000002

                Relay_Log_Pos: 251

        Relay_Master_Log_File: mysql-bin.000005

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

*************************** 1. row ***************************


show processlist\G;可以查看I/0線程狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章