我有 MySQL 5.5.20 和这个表:
mysql> desc 国家; +----------------+-------------+------+-----+----- ----+-----+ | 领域 | 类型 | 空 | 钥匙 | 默认 | 额外 | +----------------+-------------+------+-----+----- ----+-----+ | 身份证 | 整数(255) | 否 | PRI | 空 | | | 异 varchar(2) | 否 | | 空 | | | 姓名 | varchar(80) | 否 | | 空 | | | printable_name | varchar(80) | 否 | | 空 | | | iso3 | varchar(3) | 是 | | 空 | | | 编号 | smallint(6) | 是 | | 空 | | +----------------+-------------+------+-----+----- ----+-----+
如果我运行这样的查询
SELECT country.ID, country.ISO, country.NAME,
country.PRINTABLE_NAME, country.ISO3, country.NUMCODE
FROM country;
Run Code Online (Sandbox Code Playgroud)
它返回:
ERROR 2013 (HY000): 在查询过程中失去与 MySQL 服务器的连接
如果我像这样更改列的顺序(例如,在 PRINTABLE_NAME 之前的 ISO3):
SELECT country.ID, country.ISO, country.NAME,
country.PRINTABLE_NAME, country.NUMCODE, country.ISO3
FROM country;
Run Code Online (Sandbox Code Playgroud)
它工作正常!
或者,如果我使用列的小写字母重写查询,它也能正常工作。
这个问题不时出现(大约一个月一次),解决它的唯一方法是重新启动 MySQL!我已经检查了错误日志,但在此错误时没有在错误日志中添加任何内容!!我真的很困惑,不知道为什么会这样!关于如何解决这个问题的任何想法?
我在 Windows 上运行 MySQL 5.7.26,当从 MySQL 命令行客户端执行简单查询时,我得到了与您描述的相同的错误。我发现只有当查询长度正好是 64 个字符时才会出现这种情况!只需添加一个空格就可以解决我的问题。
无论是选择查询还是插入/删除/更新查询都没关系。
我已经在我的服务器上运行了 66.000 个查询,只有 64 个字符的查询失败了。
我检查了数据库是否损坏。但在该服务器上创建新的数据库和表时,我也可以重现同样的问题。
我只能在该生产服务器上重现这个问题。我创建了一个具有与 VMWare 计算机完全相同的版本和完全相同的设置的新服务器,但无法重新创建。使用相同的 MySQL 客户端。
归档时间: |
|
查看次数: |
4704 次 |
最近记录: |