MySQL 日志报错:Got packets out of order
2025-09-09 15:11 abce 阅读(131) 评论(0) 收藏 举报数据库错误日志偶尔会报如下错误:
2025-08-17T03:02:25.931797+08:00 225756739 [Note] [MY-010914] [Server] Got packets out of order
MY-010914 错误和网络问题有关,比如:
·Aborted connection XX to db: …
·Bad handshake
·Got an error reading communication packets
·Access denied for user…
·Got an error writing communication packets
也可以从数据库表中直接看到该错误信息。比如:
select logged, error_code, data from performance_schema.error_log where error_code='MY-010914' and data like 'Got pac%';
这些错误信息是从何而来的呢?这些错误很可能是由 MySQL Shell 引发的!
当使用 MySQL Shell 连接 MySQL 时,若仅指定端口而未指定协议,MySQL Shell 会优先尝试使用 X 协议,若失败则转而使用经典协议。
例如,执行以下命令会在 MySQL 错误日志中产生 "Got packets out of order" 的报错:
mysqlsh root@localhost:3306
此问题已在 MySQL Shell 9.0 中修复。
如果使用 MySQL Shell 8.0 或 8.4 版本(尽管官方始终建议使用最新版本的 MySQL Shell),则无需使用与 MySQL 服务器版本相同的 MySQL Shell 版本,指定协议即可解决此问题:
mysqlsh mysql://root@localhost:3306
MySQL Shell 支持类似 protocol://user@host:port 的 URI 格式,其中协议可以是 mysql 或 mysqlx。

浙公网安备 33010602011771号