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

CentOS 編譯安裝 mysql-proxy 實現讀寫分離與 SQL 審計

     編輯:MySQL 綜合教學

CentOS 編譯安裝 mysql-proxy 實現讀寫分離與 SQL 審計

mysql-proxy 是一個輕量級中間件,位於客戶端與 MySQL 之間,支持 Lua 腳本實現讀寫分離、SQL 過濾、審計、分片等功能。本文記錄 CentOS 下依賴安裝、編譯部署與基礎驗證流程。

一、依賴包安裝

yum install -y lua-devel glib2-devel

二、編譯安裝 libevent (mysql-proxy 依賴)

wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar -zxvf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure --prefix=/usr/local/libevent
make && make install
echo "/usr/local/libevent/lib" > /etc/ld.so.conf.d/libevent.conf
ldconfig

三、編譯安裝 mysql-proxy

wget https://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.8.5.tar.gz
tar -zxvf mysql-proxy-0.8.5.tar.gz
cd mysql-proxy-0.8.5
./configure --prefix=/usr/local/mysql-proxy --with-libevent=/usr/local/libevent
make && make check && make install
ldconfig

四、基礎驗證:反向代理模式

場景:後端 MySQL 192.168.1.245:3306,Proxy 監聽 192.168.1.201:3308

mysql-proxy -P 192.168.1.201:3308 \
  --proxy-backend-addresses=192.168.1.245:3306 \
  --daemon --pid-file=/var/run/mysql-proxy.pid \
  --log-file=/var/log/mysql-proxy.log --log-level=info

客戶端連接 192.168.1.201:3308 即透明訪問後端數據庫。

五、進階:讀寫分離 Lua 腳本

-- rw_splitting.lua (官方示例簡化)
local rw_splitting = require("mysql-proxy.rw_splitting")
rw_splitting.enable({
    max_idle_connections = 10,
    min_idle_connections = 2,
    is_debug = false
})

啟動參數增加:--proxy-lua-script=/usr/local/mysql-proxy/share/rw_splitting.lua

六、常見問題

  • 連接數耗盡:調大 max_idle_connections、檢查後端 max_connections。
  • Lua 腳本報錯:查看 --log-level=debug 日志,確認 Lua 版本兼容性 (建議 Lua 5.1)。
  • 性能瓶頸:單進程單線程模型,高併發建議部署多實例 + LVS/HAProxy 負載均衡。

⚠️ 注意:mysql-proxy 官方已停止維護 (GA 版本 0.8.5 發布於 2010 年)。生產環境強烈建議遷移至 ProxySQL、MyCat、ShardingSphere-Proxy 等活躍維護的中間件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved