Mysql 之主從複製,mysql-proxy讀寫分離

準備兩臺mysql服務器,master(192.168.43.64)、slave(192.168.84.129)mysql

master配置:sql

log-bin=mysql-bin
binlog_format=mixed
server_id=1
binlog_checksum=none

slave配置:服務器

而後給master受權並查看二進制文件名稱和位置:lua

進入從服務器執行以下sql並開啓slave、查看slave狀態:spa

change master to  master_host='192.168.43.64' ,master_user='root' ,master_password='123' ,master_log_file='mysql-bin.000032' ,master_log_pos=1912;

最後驗證主從配置:debug

 問題總結:3d

  一、兩個主從mysql要能遠程登陸,不然相互沒法配置成功。日誌

  二、因爲mysql5之前有binlog-checksum,致使主從配置失敗,在配置文件中加binlog_checksum=none後重啓mysql服務。
code

    

讀寫分離的實現:orm

下載mysql-proxy,安裝缺乏的vc庫,在mysql-proxy文件夾中建立mysql-proxy.cnf配置文件。以下所示:

[mysql-proxy]
admin-username=root
admin-password=root
admin-lua-script=D:/BtSoft/WebSoft/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-backend-addresses=192.168.43.64:3306
proxy-read-only-backend-addresses=192.168.84.129:3306
proxy-lua-script=D:/BtSoft/WebSoft/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
log-file=D:/BtSoft/WebSoft/mysql-proxy/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true

參數介紹以下:

   admin-username:用於中間件鏈接的用戶,這裏我仍是用root偷懶
   admin-password:同上用戶密碼
   admin-lua-script:根據存放的文件位置自行調整
   proxy-backend-addresses:主庫服務器+端口
   proxy-read-only-backend-addresses:從庫服務器+端口,多個從庫用,隔開    
   proxy-lua-script:根據存放的文件位置自行調整
   log-file:日誌文件存放位置,若是你指定了一個路徑,請確保手動建立了對應的文件夾,不然會報錯
   log-level:日誌級別
   daemon:以守護進程方式運行
   keepalive:長鏈接

修改rw-splitting.lua中的4改成1,#默認超過4個鏈接數時,纔開始讀寫分離

if not proxy.global.config.rwsplit then
    proxy.global.config.rwsplit = {
        min_idle_connections = 1,
        max_idle_connections = 8,
        is_debug = false
    }
end

 打開cmd輸入命令:

D:\BtSoft\WebSoft\mysql-proxy\bin\mysql-proxy -P 192.168.43.64:4040 --defaults-file=D:\BtSoft\WebSoft\mysql-proxy\mysql-proxy.conf

執行結果:

出現上圖則說明mysql-proxy配置成功。

驗證是否成功讀寫分離:

1.鏈接mysql-proxy

插入一條數據到mysql-proxy中,如圖

在從服務器查看,如圖:

相關文章
相關標籤/搜索