私はMySQL 5.5.20とこのテーブルを持っています:
mysql> desc country;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| id | int(255) | NO | PRI | NULL | |
| iso | varchar(2) | NO | | NULL | |
| name | varchar(80) | NO | | NULL | |
| printable_name | varchar(80) | NO | | NULL | |
| iso3 | varchar(3) | YES | | NULL | |
| numcode | smallint(6) | YES | | NULL | |
+----------------+-------------+------+-----+---------+-------+
このようなクエリを実行すると
SELECT country.ID, country.ISO, country.NAME,
country.PRINTABLE_NAME, country.ISO3, country.NUMCODE
FROM country;
戻り値:
ERROR 2013 (HY000): Lost connection to MySQL server during query
次のように列の順序を変更した場合 (たとえば、PRINTABLE_NAME の前の ISO3):
SELECT country.ID, country.ISO, country.NAME,
country.PRINTABLE_NAME, country.NUMCODE, country.ISO3
FROM country;
それはうまくいきます!
または、列に小文字を使用してクエリを書き直しても、同様に機能します。
この問題はときどき (約 1 か月に 1 回) 発生し、これを修正する唯一の解決策は MySQL を再起動することです! 私はエラーログをチェックしましたが、これは私が持っているものです:
130310 11:01:23 [Warning] /usr/sbin/mysqld: Forcing close of thread 401108 user: 'root'
私は本当に混乱していて、なぜこれが起こるのか分かりません! これをどのように修正できるかについてのアイデアはありますか?