MySQL Error Log: Got packets out of order
2024-09-18 14:29 abce 阅读(199) 评论(0) 编辑 收藏 举报在MySQL错误日志中发现有偶发的如下信息:
2024-09-13T15:55:29.489324+08:00 26750047 [Note] [MY-010914] [Server] Got packets out of order 2024-09-13T15:55:29.544688+08:00 26750048 [Note] [MY-010914] [Server] Got packets out of order 2024-09-13T15:55:29.590259+08:00 26750049 [Note] [MY-010914] [Server] Got packets out of order 2024-09-13T15:55:29.658435+08:00 26750090 [Note] [MY-010914] [Server] Got packets out of order 2024-09-13T15:55:29.686936+08:00 26750091 [Note] [MY-010914] [Server] Got packets out of order 2024-09-13T15:55:29.707194+08:00 26750092 [Note] [MY-010914] [Server] Got packets out of order 2024-09-13T15:55:29.758550+08:00 26750093 [Note] [MY-010914] [Server] Got packets out of order
MySQL Server在遇到网络问题的时候,会发生MY-010914错误,比如:
·与数据库的连接中断
·握手失败
·读取通信数据包时出现错误
·拒绝用户访问...
·写入通信数据包出错
·...
还可以使用 Performance_Schema.error_log 表直接在 SQL 中找到这些错误信息:
select logged, error_code, data from performance_schema.error_log where error_code='MY-010914' and data like 'Got packets out of order%';
那么,既然我们看到了这些错误信息,它们是从哪里来的呢?这些错误很有可能是由 MySQL Shell 引起的!
如果使用 MySQL Shell 连接 MySQL,提供了端口但没有提供协议,MySQL Shell 会首先尝试使用 X 协议,如果失败,就会使用经典协议。
例如,此命令将在 MySQL 错误日志中产生一个Got packets out of order错误:
$ mysqlsh root@localhost:3306
不过,这个问题已经在MySQL Shell 9.0中得到了修复。
MySQL Shell 指定协议就能解决这个问题:
$ mysqlsh mysql://root@localhost:3306
MySQL Shell 支持 URI,如 protocol://user@host:port,其中协议可以是 mysql 或 mysqlx。