測試版本:MySQL Proxy 0.6.x(新版本可能已修復部分問題)
現象:帳密正確但連線失敗。
原因:MySQL Server 啟用 old_password = 1(舊版升級常見),Proxy 不支援舊式 16 位元雜湊密碼。
驗證:SELECT LENGTH(Password) FROM mysql.user 若為 16 即為 old_password。
解決:關閉 old_password 或重設密碼為新式 41 位元雜湊。
現象:透過 Proxy 查詢中文皆為亂碼,手動 SET NAMES utf8 無效。
解決:在 my.cnf [mysqld] 區段強制設定:
[mysqld]
skip-character-set-client-handshake
init-connect='SET NAMES utf8'
default-character-set=utf8
跳過客戶端字元集握手,強制連線建立時即設定 UTF-8。
架構:1 Master + 2 Slave,Proxy 做讀寫分離。
現象:停掉一個 Slave,Proxy 持續報錯導致所有連線失敗。
根因:Proxy 0.6.x 對後端失效處理邏輯缺陷。
修復:替換 src/network-mysqld-proxy.c 中 NETWORK_MYSQLD_PLUGIN_PROTO 函數(官方提供修補版)。
現象:Proxy 間歇性靜默停止,間隔較長。
暫行方案:排程腳本定期重啟 Proxy(如每晚重啟)。
期望:升級新版本徹底解決。