2013-05-03 61 views
0

我實際上發現了一篇博客文章,它總結了我的問題。它在python包(PyMySQL3)可能導致的MySQL身份驗證問題

http://simon04.net/2013/03/python3-mysql/

的博客文章是最清楚的,但概括地說:我目前正試圖用所謂的PyMySQL3 Python包來訪問遠程MySQL數據庫。但是我不斷收到錯誤:「AttributeError:'字節'對象沒有'編碼'屬性。從上面的博客文章和其他一些研究,我認爲這與我的數據庫有一箇舊的身份驗證方法有關。

但是,我很困惑,因爲它看起來像舊的身份驗證方法有時在MySQL 4.0中被淘汰。我有數據庫運行MySQL 5.0.51a。我的數據庫不應該有正確的身份驗證?

我一直在努力工作,並且有點沮喪。希望有人能幫助。謝謝,

回答

0

好吧,一邊調查這一點,我想也許我的託管公司(aplus.net)只是沒有及時更新。無論如何我都要換公司,所以我在另一家公司開了一個新賬戶。現在我沒有連接到PyMySQL3的問題。顯然,我的舊託管公司只是沒有及時更新,或者至少他們的SQL配置正在破壞PyMySQL3。

感謝您的迴應。希望沒有其他人有這個問題,因爲交換託管公司並不總是最好的答案= O

0

https://github.com/petehunt/PyMySQL/issues/64

For me this problem was due to the usage of the old authentication method (cf. http://dev.mysql.com/doc/internals/en/authentication-method.html). Creating a new user (resetting the password might work as well) and making sure that the password column for this user in the mysql.user table starts with a * (otherwise check the server configuration according to the above link), solved the problem for me.

您是否創建了這個非常版本你提到的用戶?

該線程顯示如何修復代碼中的問題,並告訴您何時需要其他幫助來解決問題。我會相應地編輯我的答案。

+0

我很確定用戶都使用MySQL5。我正在通過一個網絡託管公司,所以我沒有像往常那樣訪問。我無法查看mysql.user表,但他們有一個用於修改用戶的界面。他們都說數據庫類型是MySQL5。另外,我將密碼設置爲以「*」開頭的內容,但我不確定爲什麼會改變這些內容?仍然沒有工作 – bluemoon12 2013-05-05 02:35:16

+0

雖然關於服務器配置 - 我想可能會有什麼東西可以搞砸了嗎?我注意到有一個MySQL標誌secure_auth被設置爲「NO」。你認爲這會有影響嗎?不幸的是,我不能輕易改變MySQL系統變量。至少它說我沒有訪問權限...... – bluemoon12 2013-05-05 02:39:09