ERROR 2013 (HY000): Lost connection to MySQL server at 'sending authentication information', system error: 32

起きたこと

ローカルマシンから mysql につなごうとしたら以下の様なエラーが発生し繋げなくなった。

$ mysql -uroot
ERROR 2013 (HY000): Lost connection to MySQL server at 'sending authentication information', system error: 32

原因

1 process あたりの許容ファイルオープン数を超えてしまったことが原因の様子。

MySQL 5.6 の innodb_file_per_table オプションはデフォルトで ON になっている。 ON にすると各テーブルのデータはそれぞれのファイルに保存されるようになる。

OSX の場合、1 process あたりの許容ファイルオープン数はデフォルトで 256 となっている。 この数字は通常問題にならないが、 parallel に unit test を実行していたりするとあっという間に達してしまったりする。 今回はこのケースだった。

ref.

stackoverflow.com

superuser.com