无法与 PyMySQL 建立远程连接(pymysql.err.InternalError:数据包序列号错误)
Posted
技术标签:
【中文标题】无法与 PyMySQL 建立远程连接(pymysql.err.InternalError:数据包序列号错误)【英文标题】:Cannot make remote connection with PyMySQL (pymysql.err.InternalError: Packet sequence number wrong) 【发布时间】:2018-02-19 02:43:37 【问题描述】:更新:问题已解决,解决方案贴在下方
我不熟悉建立远程数据库连接的过程,但似乎没有针对此错误的明显解决方案。
pymysql.err.InternalError: Packet sequence number wrong - got 80 expected 0
在尝试建立以下 pymysql 连接时出现
我在 PyCharm 中运行 MacOS 10.12.5、Python 2.7.10(也尝试了终端)和 PyMySQL 0.7.11(也尝试了 0.7.9)
更新:也在 Windows 10、Python 2.7.13 上尝试过,结果相同
数据库托管在 cPanel 上。在我可以连接之前,也许还有其他设置需要更改。连接用户具有完全权限。我的 IP 已添加到主机“访问”列表中。
其他注意事项: 不出所料,如果端口号或主机 IP 随机更改,它会立即拒绝连接。否则,大约需要 30 秒才会出现“数据包序列”错误。
import pymysql.cursors
import pymysql
connection = pymysql.connect(host = hostIPaddress,
port = 2083,
user = username,
passwd = password,
db = dbName,
charset = 'utf8mb4', # also tried 'utf8'
cursorclass=pymysql.cursors.DictCursor)
【问题讨论】:
【参考方案1】:虽然主机使用端口 2083,但在这种情况下,每个数据库都使用默认端口 3306。
在使用 3306 进行测试时,访问被拒绝,直到我将被拒绝的 IP 添加到 cPanel 上远程 MySQL 中的主机“访问”列表中。
【讨论】:
以上是关于无法与 PyMySQL 建立远程连接(pymysql.err.InternalError:数据包序列号错误)的主要内容,如果未能解决你的问题,请参考以下文章
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。