因爲現公司設備服務器天天產生14萬,接近15萬條數據,在運維服務器端同時也須要處理設備服務器的數據,因此部署了主從兩臺mysql服務,實現讀寫分離。大體架構以下圖
Mysql中有一種叫作bin(二進制)的日誌,這個日誌記錄了主Mysql服務器執行的全部Sql語句。
一、主服務必須啓用二進制日誌,記錄修改數據的事件 二、從服務器開啓一個線程,經過一個線程,請求主服務的二進制日誌文件中的事件 三、主服務器啓動一個線程,檢查本身二進制日誌中的事件,跟對方請求的位置對比,若是不帶位置參數請求,則主節點就會從第一個日誌文件中的第一個事件一個個發給從服務器 四、從服務器收到主服務器發送過來的數據放到中繼日誌(Relay log)文件中,並記錄該請求到主服務器的具體哪一個日誌文件的哪一個位置 五、從節點啓動一個,把Relay log中的事件讀取出來 ,並在本地執行一次
一、啓用二進制日誌 二、爲當前節點設置一個全局惟一的server_id 三、建立有複製權限的用戶帳號 REPLIACTION SLAVE ,REPLIATION CLIENT。
一、啓用中繼日誌 二、爲當前節點設置一個全局惟一的server_id 三、使用有權限的用戶帳號鏈接到主服務,並啓動複製線程
主Mysql:172.18.0.2 從Mysql: 172.18.0.3 Mysql版本:5.7.28 運行環境:docker 一、編輯主Mysq配置文件
二、添加配置 添加:log-in=mysql-bin 添加:server-id=5 添加:replicate-do-db=main_db 添加:innodb_file_per_table=ON 添加:skip_name_resolve=ON
三、啓動服務,查看主Mysql日誌狀態
四、查看主Mysql服務狀態
五、建立備份權限的用戶
六、刷新權限
七、編輯從服務 修改myl.cnf文件
八、修改配置 添加:relay-log=relay-log 添加:relay-log-index=relay-log.index 添加:server-id=23 添加:innodb_file_per_table=ON 添加:skip_name_resolve=ON 添加:replicate-do-db=main_db
九、查看從Mysql服務日誌信息
十、在從Mysql服務配置訪問主節點的參數信息 添加主Mysql 訪問主Mysql服務的用戶名和密碼,主Mysql的二進制信息 查看主Mysql服務當前日誌信息:
十一、啓動同步服務
十二、查看同步服務
1三、Mysql同步服務在這裏配置完成。