MySql配置主從同步

 

一. 實現MySQL主從複製需要進行的配置:

  • 主服務器:
    • 開啓二進制日誌
    • 配置唯一的server-id
    • 獲得master二進制日誌文件名及位置
  • 從服務器:
    • 配置唯一的server-id
    • 使用master分配的用戶賬號讀取master二進制日誌
    • 啓用slave服務

一、主服務器master設置:

準備工作:

1.主從數據庫版本最好一致

2.主從數據庫內數據保持一致

主數據庫:192.168.92.138 /linux + phpstudy

從數據庫:192.168.92.137/linux + phpstudy

第二部分、主數據庫master修改:

修改mysql配置

找到主數據庫的配置文件my.cnf(或者my.ini),如下兩行:

#開啓二進制日誌
log-bin=mysql-bin
#設置server-id
server-id=49
# 不同步哪些數據庫  
binlog-ignore-db=mysql  
binlog-ignore-db=test  
binlog-ignore-db=information_schema  
#只同步哪些數據庫除此之外,其他不同步  
binlog-do-db=my_learn

2.查看master狀態,記錄二進制文件名和位置:

mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 6928     | my_learn     | mysql,test       |
+------------------+----------+--------------+------------------+

二、從服務器slave修改:

修改mysql配置

同樣找到my.cnf配置文件,添加server-id

[mysqld]
server-id=48 #設置server-id,不要和master的一樣

重啓mysql,打開mysql執行會話,執行同步SQL語句(需要主服務器主機名,登陸憑據,二進制文件的名稱和位置):

change master to master_host='192.168.92.138',master_user='root',master_password='root', master_log_file='mysql-bin.000003' ,master_log_pos=6928;

啓動slave同步進程: 

start slave;

查看slave狀態:

show slave status;

結果

當Slave_IO_Running和Slave_SQL_Running都爲YES的時候就表示主從同步設置成功了。接下來就可以進行一些驗證了,比如在主master數據庫的test數據庫的一張表中插入一條數據,在slave的test庫的相同數據表中查看是否有新增的數據即可驗證主從複製功能是否有效,還可以關閉slave(mysql>stop slave;),然後再修改master,看slave是否也相應修改(停止slave後,master的修改不會同步到slave),就可以完成主從複製功能的驗證了。

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