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
是不是很牛的樣子!下一篇見!