pymysql.err.InternalError:数据包序列号错误-预期为45 0

时间:2018-07-08 21:07:52

标签: python mysql pymysql

我正在尝试通过pymysql连接到mysql数据库。当我通过终端SSH进入数据库时​​,一切正常。因此,该信息是正确的。但是,当我在使用pymysql输入相同的信息时,出现以下错误:

pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0

pymysql版本:0.9.2

代码(请注意,出于安全原因,我更改了有关主机,用户,密码,数据库和端口的信息)。

import pymysql.cursors

connection = pymysql.connect(host='myhost',
                             user='userid',
                             password='mypassword',
                             db='my_database',
                             charset='utf8mb4',
                             port=9047,
                             cursorclass=pymysql.cursors.DictCursor)

except Exception as e:
    print('connection failed')
    print(e)

此代码较早起作用。我不得不为另一个项目升级软件包,现在它退出了工作。我认为这可能是原因。

以前有人遇到过吗?如果是这样,您是如何解决的?

谢谢!

*我也尝试过使用其他端口。我注意到here他们使用了端口22或3306,但是使用端口22会出现超时错误,而使用端口3306会出现拒绝访问错误。

2 个答案:

答案 0 :(得分:1)

我认为原因是您一次使用多线程连接到mysql,mysql服务器在此返回错误响应。

答案 1 :(得分:0)

好的,我知道了。

我只需要删除

cursorclass=pymysql.cursors.DictCursor

现在可以使用了:)

谢谢大家!