2013-10-21 37 views
1

所以我是C++/Mysql的新手,如果我問一些愚蠢的問題,我很抱歉。mysql/c + +連接器錯誤:使用舊的(pre-4.1.1)身份驗證協議拒絕的連接

我所遇到的錯誤從C++

SQLException: Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) 

我對這個問題看了很多現有的解決方案連接mysql和他們似乎暗示了一些更新的設置重新啓動服務器。但是,我試圖連接到遠程服務器,並且我沒有對該服務器的根訪問權限。

這裏是我的服務器,客戶端和連接器上的一些細節:

  1. 服務器版本是32年5月5日
  2. 客戶端版本是版本14.14 DISTRIB 69年1月5日,紅帽Linux的GNU的(x86_64)使用readline 5.1。這很奇怪,因爲這比4.1.1更新
  3. 我還安裝了MYSQL/C++ Connector 1.1。我下載了它的源代碼並使用CMake構建而沒有錯誤。

我想簡單的解決方法是從連接器中禁用「secure_auth」。但是,我不知道該怎麼做。是否有一些參數可以從我的C++代碼傳遞?

那麼有沒有人有任何建議?謝謝!

回答

0

Pre 4.1.1引用您正在嘗試驗證的密碼。如果你不能改變,要使用更加現代的(再)方案,你可以嘗試

  1. 使用舊客戶端,默認情況下不具有secure_auth啓用,
  2. 找到該到哪裏skip_secure_auth(可或者http://bugs.mysql.com/bug.php?id=75425可能無法正常工作),或
  3. 補丁客戶端與一個線修復,使secure_auth = FALSE作品

選項2和3是容易,如果你可以使用一個.CNF文件連接。

相關問題