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

标签 mysql macos mysql-error-1064

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

我使用的是 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 操作系统还不太熟悉,所以我不太确定这些软件包之一是如何相互配合的...我最好的猜测是,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 命令连接到 4.1 之前的数据库行选项。例如:

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

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

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

相关文章:

MySQL 复制错误 'You cannot ' 在查询时更改“如果启用日志记录则记录表”

MySQL 错误 1064 : Stored procedure

MySQL搜索任何单词而不是所有单词

php - 将 MySQL 时间戳转换为更易读的格式

java - 将 JMenu 放在 Mac 菜单栏上

python - 由于在 Mac OS X 上 brew install gcc 后缺少 fortran 编译器,仍然无法安装 scipy

c - 升级到 macOS Mojave 后,MATLAB 不再卸载 MEX 文件

当更新发现没有要更新的行时,MySQL 报告/导致错误?

mysql - 如何识别同一行内 3 个不同列中的重复数据并删除第二组重复数据?

php - 错误号 : 1064 CodeIgniter