1. 程式人生 > >MySQL實現主從複製過程

MySQL實現主從複製過程

1、主從複製比DBS成本高 畢竟要準備一個和線上配置一樣的伺服器 以便於主伺服器被攻擊 隨時切換到從伺服器

實際上mysql的主從複製原理就是 mysql中有一個二進位制的binlog日誌檔案 當資料發生任何改變的同時 binlog檔案都會記錄一個sql語句

那麼從伺服器一直監控這個binlog檔案 當發生改變的時候 把binlog 拿過來自己執行一邊就ok

那麼我們來開始

1、首先準備兩臺伺服器 安裝一樣的mysql版本 一個作為主庫 一個作為從庫

2、修改主伺服器master:

#vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必須]啟用二進位制日誌

   server-id=241//[必須]伺服器唯一ID,預設是1,一般取IP最後一段

這裡寫圖片描述

3、修改從伺服器slave:

#vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必須]啟用二進位制日誌 server-id=141//[必須]伺服器唯一ID,預設是1,一般取IP最後一段

4、重啟兩臺伺服器的mysql

service mysqld restart

5、在主伺服器上建立帳戶並授權slave: #/usr/local/mysql/bin/mysql -uroot -pmttang

mysql>GRANT REPLICATION SLAVE ON .

to ‘renbing’@’%’ identified by ‘renbing’; //一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如45.168.145.236,加強安全。

這裡寫圖片描述

6、登入主伺服器的mysql,查詢master的狀態

mysql>show master status;

+——————+———-+————–+——————+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+——————+———-+————–+——————+

| mysql-bin.000004 | 308 | | |

+——————+———-+————–+——————+

1 row in set (0.00 sec)

注:執行完此步驟後不要再操作主伺服器MYSQL,防止主伺服器狀態值變化

7、配置從伺服器Slave:

5.png、

8、檢查從伺服器複製功能狀態:

mysql> show slave status\G

注:Slave_IO及Slave_SQL程序必須正常執行,即YES狀態,否則都是錯誤的狀態(如:其中一個NO均屬錯誤)。

這裡寫圖片描述

以上操作過程,主從伺服器配置完成。

9、主從伺服器測試:

建立一資料庫 建立一個表 插入一條資料

然後在從資料檢視

這裡寫圖片描述 這裡寫圖片描述 10、完成:

編寫一shell指令碼,用nagios監控slave的兩個yes(Slave_IO及Slave_SQL程序),如發現只有一個為no,就表明主從有問題了,發簡訊警報吧。

至此主從配置全部完成