MySQLでMySQL server has gone awayエラー
MySQL 5.5.27, for Win32 (x86) です。XAMPPについてたやつです。
いくつか原因があるようですがー。自分のケースは結局解決方法がググっても見つからず、試行錯誤でなおしました。ログとして残しておきます。
表示されるエラーは以下のとおり。
ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 3 Current database: *** NONE *** ERROR 1184 (08S01): Aborted connection 3 to db: 'unconnected' user: 'hoge' host: 'localhost' (init_connect command failed)
どういう状況で発生したかというと、
>> mysql -uroot mysql> create user 'hoge'@'localhost' identified by 'hoge'; Query OK, 0 rows affected (0.00sec) mysql> select 1; +---+ | 1 | +---+ | 1 | +---+ mysql> quit >> mysql -uhoge -phoge mysql> select 1; # ここでエラー!
と、まったく同じ操作を、rootならできるのに新規作成したユーザでできないのでした。
原因は、my.iniの文字コードまわりの設定。もともと次のようにUTF8を使う際の設定がコメントアウトされていたので、これのコメントを全部はずして利用していたわけですが……。
## UTF 8 Settings #init-connect=\'SET NAMES utf8\' #collation_server=utf8_unicode_ci #character_set_server=utf8 #skip-character-set-client-handshake #character_sets-dir="/ProgramFiles/xampp-cake/mysql/share/charsets"
このうち、
init-connect=\'SET NAMES utf8\'
これがNGだったようです。この行だけ元通りコメントアウトしたらエラー消えました。コメントアウトしたことによる文字コードまわりへの影響も今のところ特にないです。