程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

mysql proxy問題

編輯:更多數據庫知識

最近試用mysql proxy,遇到若干問題,好在一一找到了解決方案,列出來備忘。這次使用的版本是0.6.x,也許新版本就沒有這些問題了。

無法通過mysql proxy連接mysql

在host,password正確的情況下,也會遇到無法連接mysql的情況,可以查查mysql server是不是使用了old_password,檢查my.cnf裡面是不是有

PLAIN TEXT CODE:
  1. old_password = 1

有的數據庫是從老版本升級上來的,所以會開啟這個選項,mysql proxy不支持old_password。另外也可以通過查看密碼長度的方式來判斷:

PLAIN TEXT CODE:
  1. select length(password) from mysql.user

如果長度為16位則是old_password無疑。

字符亂碼

通過proxy連上數據庫之後,查到的字符串始終是亂碼,即便手工執行了set names 'utf8'也沒有效果。

解決辦法,mysql server必須設置

PLAIN TEXT CODE:
  1. [mysqld]
  2. skip-character-set-client-handshake
  3. init-connect='SET NAMES utf8'
  4. default-character-set=utf8

 

一台mysql slave當掉之後,mysql proxy會報錯導致全部的mysql無法連接

安裝了mysql proxy實現讀寫分離,有master x 1, slave x 2。為了測試failover,停掉了一個slave,然後mysql proxy會一直報錯,提示無法連接。這個情況比單點的mysql還糟糕,掛掉一個就全掛掉!mysql的工程師給提供了一段代碼,替換掉src/network-mysqld-proxy.cNETWORK_MYSQLD_PLUGIN_PROTO函數可以解決這個問題。

代碼比較長,直接附上下載地址: network-mysqld-proxy-function.c

定期crash

這個問題也很糟糕,mysql proxy經常會自己悄悄的停止工作,所幸時間間隔很長。猜想是有內存洩漏的問題存在,希望以後的版本能解決。

我采用的解決辦法就是晚上定期重啟它。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved