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

mysql-python mac OSX 10.10 disable secure auth

正在 Mac (Yosemite OSX 10.10) 开发 python 应用,我 运行 进入本期:

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

经过一些研究,我的客户(即 mysql-python)似乎正在使用安全身份验证,并且用户有一个以旧方式加密的密码,这是在pre-4.1.1.

因为我没有办法处理数据库端的事情,所以我想知道是否有解决方法或方法可以在 [=21] 上停用 secure_auth =]mysql-python?

我正在改编来自here的答案:

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

现在,您收到错误消息是因为客户端已设置 secure_auth,但他们使用的是旧密码。为了使用旧密码登录,客户端必须在客户端禁用 secure_auth。具体如何执行此操作因您使用的客户端而异。

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

我找到了治愈方法!

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

我是这样做的:

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

我都删除了。

我寻找安装 MySQLdb 的方法,方法是寻找带有源的最后一个稳定版本。

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

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

现在一切正常!

希望对您有所帮助。