Linux下mysql資料庫一主一從同步配置

學無止習無涯發表於2016-10-17

MySQL主從同步配置

mmj 16.09.29

1.確認執行環境

1.1確認主從IP

主伺服器(master):192.168.3.10

從伺服器(slave):192.168.3.18

1.2確認資料庫版本

都為5.5.31



2.主伺服器上配置

2.1修改MySQL配置檔案

路徑: /etc/mysql/my.cnf

新增以下內容:在[mysqld]下方

server-id=1

log-bin=mysql-bin

binlog-do-db=tt

binlog-ignore-db=js_xy

其中server-id是伺服器id

log-bin=mysql-bin啟用二進位制日誌

binlog-do-db是需要同步的資料庫



2.2重啟service

在命令列:sudo/etc/init.d/mysql restart

(Win中可以在服務中停止,再開啟服務)

如果重啟失敗:說明設定的引數不正確(檢查大小寫,空格,單詞拼寫)



2.3註冊使用者

2.3.1註冊可訪問主庫檔案的使用者

root登入輸入:grantreplication slave on *.* to 'slave'@'%' identified by '123456';

給所有ip分配一個訪問二進位制檔案許可權的使用者slave.

2.3.2 從庫連線測試

在從庫上進行測試 slave使用者是否能連線到主庫的mysql:mysql -h 192.168.3.10 -uslave -p123456



2.4展示主庫日誌資訊

(前提:在此時資料庫不能進行資料互動。否則就要進行鎖表)

mysql>showmaster status;

例子:

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

|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

|mysql-bin.000011 | 107 |tt |js_xy |

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

1row in set (0.00 sec)



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



記錄下 : mysql-bin.000011 107



3.從伺服器上配置(Windows也適用)

3.1修改MySQL配置檔案

路徑:/etc/mysql/my.cnf win上是my.ini

server_id=2

log-bin=mysql-bin

replicate-do-db=tt

replicate-ignore-db=mysql

保證server-id和主庫不同



3.2重啟server= 2.2步驟

3.3設定同步

3.3.1重置同步

清除此前可能進行的同步配置 :mysql> reset slave;

3.3.2停止同步

停止同步,預設同步是開啟的:mysql>slavestop;

3.3.3配置同步

mysql>changemaster to

master_host='192.168.3.10',

master_user='slave',

master_password='123456',

master_log_file='mysql-bin.000011',

master_log_pos=107

master_host表示是主庫的IP

master_user表示主庫master上允許同步的使用者

maser_password表示同步使用者的密碼

master_log_file表示從哪個binlog檔案開始同步

master_log_pos表示從該binlog檔案的那個pos節點位置開始同步.

注意:master_log_filemaster_log_pos,就是我們在第四步記錄的binlog檔名和pos位置節點。



3.3.4開啟同步

重新開啟同步 :mysql>slavestart;



3.4檢視同步狀態

mysql>show slave status\G;

當命令窗資訊中 Slave_IO_Running YES同時Slave_SQL_Running YES

說明此時同步已經配置成功了!

如果Slave_IO_RunningNO,說明可能是從庫與主庫的網路不通。

如果Slave_SQL_RunningNO,說明很可能是從庫與主庫的資料不一致。

可能原因有:

1.防火牆

2.selinux

3.網路通不通

4.pos不對

5.配置打錯

6.更改配置或其他操作以後:slavestop然後再slavestart

7. 進行3.3.1重置同步


相關文章