準備兩臺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中,如圖
在從服務器查看,如圖: