mysql proxy問題的解決方案

來源:互聯網
上載者:User

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

PLAIN TEXT

CODE: 複製代碼 代碼如下:old_password = 1

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

PLAIN TEXT
CODE: 複製代碼 代碼如下:select length(password) from mysql.user

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

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

解決辦法,mysql server必須設定

PLAIN TEXT
CODE: 複製代碼 代碼如下:[mysqld]
skip-character-set-client-handshake
init-connect='SET NAMES utf8'
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.c的NETWORK_MYSQLD_PLUGIN_PROTO函數可以解決這個問題。

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

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.