MySQL Error Log: Got packets out of order
在MySQL错误日志中发现有偶发的如下信息:
|
1
2
3
4
5
6
7
|
2024-09-13T15:55:29.489324+08:00 26750047 [Note] [MY-010914] [Server] Got packets out of order2024-09-13T15:55:29.544688+08:00 26750048 [Note] [MY-010914] [Server] Got packets out of order2024-09-13T15:55:29.590259+08:00 26750049 [Note] [MY-010914] [Server] Got packets out of order2024-09-13T15:55:29.658435+08:00 26750090 [Note] [MY-010914] [Server] Got packets out of order2024-09-13T15:55:29.686936+08:00 26750091 [Note] [MY-010914] [Server] Got packets out of order2024-09-13T15:55:29.707194+08:00 26750092 [Note] [MY-010914] [Server] Got packets out of order2024-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 中找到这些错误信息:
|
1
2
3
|
select logged, error_code, datafrom performance_schema.error_logwhere 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错误:
|
1
|
$ mysqlsh root@localhost:3306 |
不过,这个问题已经在MySQL Shell 9.0中得到了修复。
MySQL Shell 指定协议就能解决这个问题:
|
1
|
$ mysqlsh mysql://root@localhost:3306 |
浙公网安备 33010602011771号