我一直在执行从 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.* 版本(文件)不再通过 brew 通过 mysql.com 获得。
所以我得到的错误是:
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 (这看起来是朝着正确的方向前进,但没有具体解释如何实现它。
任何线索?非常感谢您提前。