gpt4 book ai didi

mysql 错误 2049 连接使用来自 mac 的旧(pre-4-1-1)身份验证

转载 作者:行者123 更新时间:2023-11-29 01:59:44 26 4
gpt4 key购买 nike

我一直在执行从 4.0.24 到 5.6.12 的 mysql 迁移,当对 mysql 的可爱更新破坏了我对旧服务器的身份验证时,实际上是使用 python 脚本传输数据。

我使用的是 mac os x 10.8.5。通过 brew 的 mysql 以前的版本是 5.5.27、5.5.28、5.5.29 和 5.6.12。我以前的使用权限有问题,最后把所有这些都吹走了(在制作/usr/local 的副本之后)。现在我只有 mysql 5.6.13...我能够通过提交重新安装 5.6.12,但是 5.5.* 版本(文件)不再通过 mysql.com 通过 brew 提供。

所以我得到的错误是这样的:

machine:folder user$ python migrate.py
Traceback (most recent call last):
......
return DBH( params )
File "dbh.py", line 32, in __init__
db=self.params.get('db')
File "/Volumes/Data/Users/user/.virtualenvs/migrate/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/Volumes/Data/Users/user/.virtualenvs/migrate/lib/python2.7/site-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2049, "Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)")

请记住,我确实通过 pip 安装了 mysql-python;并尝试了 1.2.3 和 1.2.4(没有其他版本可用)

我正在使用包含站点包的 virtualenvwrapper...还尝试在 mysql-python 上使用具有不同版本的 pip

我对 mac OS 还不是很熟悉,所以我不确定这些包中的一个是如何相互影响的……我最好的猜测是 brew install mysql 既是服务器库又是客户端库,和服务;并且本地 pip install mysql-python 仅扩展了 brew install ...然后 virtualenv 将覆盖本地 mysql-python 安装。如果这不正确,请告诉我并在可能的情况下进行解释,这也可能对我有帮助。

我确实找到了以下链接,但最终没有帮助:

  • mysql-error-1064 (这看起来是在朝着正确的方向前进,但没有解释具体如何实现。

有线索吗?非常感谢您。

最佳答案

自 5.6.7 起的 MySQL 版本默认启用了 secure_auth,这意味着如果您的 MySQL 用户密码使用预加密算法进行哈希处理,则 5.6.7+ 客户端将不允许您连接4.1方法。你说你正在从 4.0.24 安装迁移,所以你的 MySQL 用户密码肯定是使用 4.1 之前的方法散列的。

当使用 mysql 命令行工具时,您可以绕过这个问题并使用 --skip-secure-auth 命令连接到您的 pre-4.1 数据库行选项。例如:

mysql -h 127.0.0.1 -u username -p --skip-secure-auth

不幸的是,无法在 mysql-python 中禁用 secure_auth

关于mysql 错误 2049 连接使用来自 mac 的旧(pre-4-1-1)身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18239699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com