pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0
pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0
我正在尝试通过 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,我收到拒绝访问错误。
我认为原因是您使用多线程一次连接到 mysql,mysql 服务器 return 此处响应错误。
好的,我明白了。
我只需要删除
cursorclass=pymysql.cursors.DictCursor
现在可以了:)
谢谢大家!
在我的例子中错误是
“(pymysql.err.InternalError) 数据包序列号错误 - 预期得到 1 0\n(此错误的背景位于:http://sqlalche.me/e/14/2j85)”
数据库设置有问题
我分配了 IP 来访问同一台服务器。
但是在分配本地主机后它工作正常。
我在尝试连接到 mariadb RDS 实例时也遇到了以下错误:(pymysql.err.InternalError) 数据包序列号错误 - 得到 1 expected 0
我的问题是我的 IP 被数据库服务器阻止了。我在 5 分钟间隔的 cron 作业中连接失败 运行,数据库服务器在 100 次连接失败后阻止了我。
不幸的是,pymysql 驱动程序未能冒出正确的错误。使用官方的 mariadb 连接器我能够正确识别问题:
sqlalchemy.exc.OperationalError: (mariadb.OperationalError) 主机 'XXX.XXX.XXX.XXX' 由于许多连接错误而被阻止;使用 'mysqladmin flush-hosts'
解锁
一旦我 运行 mysqladmin flush-hosts
在数据库服务器上一切都开始工作了。
希望我能从这种痛苦中拯救一两个可怜的灵魂!
我正在尝试通过 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,我收到拒绝访问错误。
我认为原因是您使用多线程一次连接到 mysql,mysql 服务器 return 此处响应错误。
好的,我明白了。
我只需要删除
cursorclass=pymysql.cursors.DictCursor
现在可以了:)
谢谢大家!
在我的例子中错误是 “(pymysql.err.InternalError) 数据包序列号错误 - 预期得到 1 0\n(此错误的背景位于:http://sqlalche.me/e/14/2j85)”
数据库设置有问题 我分配了 IP 来访问同一台服务器。 但是在分配本地主机后它工作正常。
我在尝试连接到 mariadb RDS 实例时也遇到了以下错误:(pymysql.err.InternalError) 数据包序列号错误 - 得到 1 expected 0
我的问题是我的 IP 被数据库服务器阻止了。我在 5 分钟间隔的 cron 作业中连接失败 运行,数据库服务器在 100 次连接失败后阻止了我。
不幸的是,pymysql 驱动程序未能冒出正确的错误。使用官方的 mariadb 连接器我能够正确识别问题: sqlalchemy.exc.OperationalError: (mariadb.OperationalError) 主机 'XXX.XXX.XXX.XXX' 由于许多连接错误而被阻止;使用 'mysqladmin flush-hosts'
解锁一旦我 运行 mysqladmin flush-hosts
在数据库服务器上一切都开始工作了。
希望我能从这种痛苦中拯救一两个可怜的灵魂!