为什么 mysql.connector 对 python2.7 没有问题,对 python3 却没有问题?

Why mysql.connector works without problem with python2.7 and not with python3?

我检查了不同的 post,例如:

但是我无法解决我的问题,我有一个程序写在python 2.7;现在我将所有内容都移动到 python 3 但我遇到了 mysql.connector.

的问题

此刻我正在使用 python 3.8.2 和 mysql-connector-python==8.0.19 但我尝试使用不同版本的 python 3,但是当我尝试关闭连接时,我在 mysql.connector 上总是遇到同样的错误。

Traceback (most recent call last):
  File "C:\Python38\lib\site-packages\mysql\connector\connection.py", line 819, in reset_session
    self.cmd_reset_connection()
  File "C:\Python38\lib\site-packages\mysql\connector\connection.py", line 1166, in cmd_reset_connection
    raise errors.NotSupportedError("MySQL version 5.7.2 and "
mysql.connector.errors.NotSupportedError: MySQL version 5.7.2 and earlier does not support COM_RESET_CONNECTION.

...
...

mysql.connector.errors.OperationalError: 1047 (08S01): Unknown command

我不确定如何解决它,我尝试以不同的方式增加池并使用不同的池或只是关闭连接但是在一个大项目中我得到了池耗尽所以我真的需要关闭连接但是我无法解决这个问题;有人可以帮我吗?

我什至尝试更改 mysql-connector 库,如另一张 Whosebug 票证中所述,但每次我更改它时都会遇到其他问题。

MySQL Connector/Python 检测服务器版本的方式有问题:

由于复制不适用于 2 位主版本号,MariaDB 使用了所谓的 RPL hack,它是在 10.0 版中引入的,并将以下版本号发送到客户端 5.5.5-10.4.13-MariaDB。另见

由于 MariaDB Connector/Python 不知道它,它假定服务器版本号是 5.5.5,并且在检查 >= 5.7.3 时会引发 NotSupportedError 异常。

您可以修补 MySQL Connector/Python(在 do_handshake() 中修复 server_version)或者尝试 MariaDB Connector/Python。它目前处于测试阶段,但预计本月仍会正式发布 (pip3 install mariadb)