首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows MySQL 主從復制與讀寫分離實戰:MySQL Proxy 配置全流程

     編輯:MySQL 綜合教學

Windows MySQL 主從復制與讀寫分離實戰:MySQL Proxy 配置全流程

本文在 Windows 環境下完整演示 MySQL 主從搭建、MySQL Proxy 讀寫分離配置,涵蓋 my.ini 參數、復制賬號授權、Binlog 位點獲取、Proxy Lua 腳本調優、日誌驗證全鏈路。

一、主庫配置

1. my.ini 核心參數

[mysqld]
log-bin=mysql-bin
log-bin-index=mysql-bin.index
server-id=1
sync_binlog=1
binlog_format=MIXED
binlog-do-db=test
binlog-ignore-db=mysql,performance_schema,information_schema

重啟服務:net stop mysql && net start mysql

2. 授權從庫復制賬號

GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.174.131' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

3. 獲取 Binlog 位點

SHOW MASTER STATUS\G;
-- 記錄 File (如 mysql-bin.000008) 和 Position (如 170)

二、從庫配置

1. my.ini 核心參數

[mysqld]
server-id=2
log-bin=mysql-bin
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
sync_master_info=1
sync_relay_log=1
sync_relay_log_info=1

2. 動態配置主庫連接

CHANGE MASTER TO
    MASTER_HOST='192.168.174.130',
    MASTER_USER='root',
    MASTER_PORT=3306,
    MASTER_PASSWORD='root',
    MASTER_LOG_FILE='mysql-bin.000008',
    MASTER_LOG_POS=170;

3. 啟動並驗證

START SLAVE;
SHOW SLAVE STATUS\G;
-- 關鍵:Slave_IO_Running=Yes, Slave_SQL_Running=Yes

三、MySQL Proxy 讀寫分離配置

1. 下載與依賴

  • MySQL Proxy 0.8.5 Windows 版
  • 依賴:.NET Framework 4 Client Profile + VC++ 2013 Redistributable (x64)

2. 配置文件 mysql-proxy.conf

[mysql-proxy]
admin-username=root
admin-password=123456
admin-lua-script=C:/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-backend-addresses=192.168.174.130:3306
proxy-read-only-backend-addresses=192.168.174.131:3306
proxy-lua-script=C:/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
log-file=C:/mysql-proxy/log/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true

3. 關鍵調優:最小空閒連接

默認 rw-splitting.lua 中 min_idle_connections=4,會話數 <4 時不分離。
修改為 1 即可立即生效讀寫分離。

4. 啟動 Proxy

mysql-proxy -P 192.168.174.133:4040 --defaults-file=C:/mysql-proxy/bin/mysql-proxy.conf

5. 日誌驗證成功標誌

2014-12-19 16:27:40: (message) proxy listening on port 192.168.174.133:4040
2014-12-19 16:27:40: (message) added read/write backend: 192.168.174.130:3306
2014-12-19 16:27:40: (message) added read-only backend: 192.168.174.131:3306

四、應用端接入

  • 將數據庫連接字符串指向 Proxy:192.168.174.133:4040
  • 寫操作自動路由至 Master (130),讀操作路由至 Slave (131)。
  • 事務內語句強制路由 Master(Proxy 自動識別 BEGIN/COMMIT)。

五、避坑指南

MySQL Proxy 0.8.5 已停止維護,生產環境建議遷移至 ProxySQL 或 MaxScale,獲得活躍社區支持、更豐富的路由規則、監控指標與高可用架構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
問題原因解決
Proxy 啟動報错 missing lua路徑含中文/空格安裝路徑純 ASCII,無空格
讀寫不分離min_idle_connections 過大改為 1 或預熱連接池
Slave 延遲導致讀舊數據異步復制本質關鍵業務強制走 Master 或半同步復制
Proxy 單點故障無 HA前置 Keepalived/VIP 或換成 ProxySQL/MaxScale