Mysql主從複製完美配置,So easy!5分鐘搞定!


Mysql版本5.7

操作系統版本centos7.3


事先準備兩台機器(或者虛擬機),分別安裝好mysql—請確保都是全新安裝,並且沒有做過任何修改配置和建庫建表等操作。

最終實現主從複製(由Master寫入,自動同步到Slave中)效果如下:

A:192.168.1.1 主Mysql—Master

B:192.168.1.2 從Mysql—Slave


實施:

1,修改配置文件

假定兩台Mysql的配置文件路徑都是 /etc/my.cnf

修改主Mysql(Master):

vi /etc/my.cnf

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

server-id=1 //伺服器唯一ID,默認是1,為方便辨認取IP最後一段

Advertisements

修改從Mysql(Slave):

vi /etc/my.cnf

log-bin=mysql-bin

server-id=2

2,重啟兩個mysql,使配置生效

3,在主Mysql上建立mysync帳戶並授權為Slave:

mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'xxxx';

mysync是授權的用戶名。

xxxx是密碼

%表示來自所有ip的mysync賬戶的slave連接請求都可以被允許,實際上為了安全我們一般會指定特定的ip,比如本例子里用只允許192.168.1.2訪問,用192.168.1.2替換%即可。

4,查詢主Mysql狀態,binlog當前日誌信息確認

Advertisements

mysql>show master status;

記住File和Position的值,後面要用。

主從複製的原理是Master的binlog日誌中記錄所有mysql信息修改,然後Slave通過分析Master的binlog日誌獲得要同步的內容,所以這裡要查詢的信息就是——要從哪個File同步,並且從哪個Position開始同步,明白了吧。

請注意,到這裡以後,請不要再對Master做任何配置或者數據的修改,直到Slave配置完成!不然會出現信息同步錯誤。

5,配置從Mysql

master_log_file的內容請參考上面4中的File值

master_log_pos參考上面4中Position值

master_user是Master中配置的mysync賬戶

master_password是mysync賬戶的密碼

6,啟動從Mysql的slave同步

root>start slave;

7,檢查從mysql的狀態

Slave_IO_Running: Yes //此狀態必須YES

Slave_SQL_Running: Yes //此狀態必須YES

如果兩個中有一個不是YES,說明配置失敗。

以上是配置過程!


實現主從複製以後下一步自然是使用它,下期我會補一篇Atlas中間件的配置說明。

Atlas是360開源的一個Mysql代理中間件,可以很方便的實現:

  • 讀寫分離

  • 從庫負載均衡

  • 自動分表

  • IP過濾

  • SQL語句黑白名單

  • DBA可平滑上下線DB

  • 自動摘除宕機的DB

是不是很牛的樣子!下一篇見!

Advertisements

你可能會喜歡