我刚刚将我的系统从Ubuntu 19.1更新到20.02,看起来以前的MySQL设置都被删除了。
当前系统已安装MySQL 8(服务器+客户端(
我尝试访问的服务器有MySQL 5.1。
每次我尝试使用SqlAlchemy连接时,我都会收到以下错误:
sqlalchemy.exc.OperationalError: (mysql.connector.errors.OperationalError) 1043 (08S01): Bad handshake
从我读到的内容来看,发生这个错误是因为我试图连接的服务器运行的MySQL版本太旧了。
有没有办法降级MySQL连接器,以解决连接问题?
我能够通过卸载最新的连接器来实现这一点:
sudo pip3 uninstall mysql-connector-python
然后安装旧版本的连接器:
sudo pip3 install -Iv mysql-connector-python==8.0.5
要检查您的连接器版本,您可以使用:
pip3 show mysql-connector-python
很抱歉回答晚了。将调用中的参数use_pure=True
添加到connect()
函数中。
从8.0.11及以上版本开始,此选项默认为False。
如果您试图从较新的Python安装(如Python版本3.8.10(连接到较旧的安装(如MySQL版本5.0.67(,则要停止错误1043(08S01(:错误握手,请执行以下操作以降级连接器:
-
使用msi文件或pip安装卸载您安装的任何mysql连接器python。例如
py-3-m pip卸载mysql-connector-ppython-x.x.x或如果是msi安装,请从控制面板上卸载它——程序和功能
-
接下来下载一个旧的mysql-connector-python-2.2.2的zip文件(您可以在https://dev.mysql.com/downloads/connector/python/)
-
将文件解压缩到一个目录中。例如,如果您的python安装在驱动器C的根目录上,则解压缩您在C:\python上下载的mysql连接器,这样您就得到了文件夹结构C:\python\mysql-connector-python-2.22(如果你愿意,你可以在下载文件夹上这样做(
-
现在使用"以管理员身份运行"打开DOS提示符,并导航到C:\python\mysql-connector-ppython-2.2[或您下载的任何版本]
-
从那里,运行以下命令
py-3安装.py安装
这在Windows7操作系统上对我有效。从逻辑上讲,您可以让它在其他操作系统上为您工作。