mysql-python mac OSX 10.10禁用安全身份验证

时间:2015-01-23 15:02:14

标签: python mysql macos mysql-python

在Mac上使用python应用程序(Yosemite OSX 10.10)我遇到了这个问题:

OperationalError: (2049, "Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)")

通过一些研究,似乎我的客户端(即mysql-python)正在使用安全身份验证,并且用户使用旧样式加密的密码,即 4.1.1之前。< /强>

由于我没有办法处理数据库方面的事情,我想知道是否有解决方法或方法来停用 mysql-python 上的 secure_auth ?< / p>

2 个答案:

答案 0 :(得分:2)

我正在调整here的答案:

最终,您必须告诉具有旧式密码的客户端将其更改为新式密码。 Old passwords are not secure.

现在,您收到错误,因为客户端已设置secure_auth,但他们有一个旧密码。要使用旧密码登录,客户端必须在客户端禁用secure_auth。具体取决于您使用的是哪个客户。

其他一些解决方法可以在MySQL文档中找到:Client does not support authentication protocol

答案 1 :(得分:0)

我找到了治疗方法!

或者更确切地说是一种解决方法。从这个post我决定选择稍微旧版本的MySQL和MySQLdb,这就解决了这个问题。

我是这样做的:

我以前为我的python安装了mysql_python,并安装了mysql的brew版本。

我发现了所有这些。

我通过查找源代码的最后一个稳定版本来寻找安装MySQLdb的方法。

我编译了它们(遵循isntructions here),安装它们然后我找了一个稳定版本的MySQL客户端(MySQL网站是最好的地方)并安装完全适合我的5.5版本要求。

我让mysql自动启动然后重新启动我的计算机(但你可以重新启动apache)并检查所有路径是否正确并且右边包含在正确的位置(你可以检查上面的链接)。

现在一切正常!

希望它有所帮助。