无法与 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:数据包序列号错误)的主要内容,如果未能解决你的问题,请参考以下文章

无法建立到远程服务器的 SSL 连接

FTP建立后,和服务器建立哪两种连接?

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。

python安装PyMySQL

无法与SQL Server建立连接

mysql无法建立远程连接