なんかさ、急にへそ曲げられたんだよね。ありえなくない?(死んだ目)
mysqlで遊んでいたときに、急にSelect文が使えなくなる事象が発生。Workbenchでもしっかりダメ。
use databaseとかshow table statusとかはできるのに、肝心のテーブルの中身が取れない。そんなんデータベースって呼べるかいな。
エラー内容
Error Code: 2013 Lost connection to MySQL server during query
いやさっきまで元気に動いとったやん。なんでやねん。
そんな突然サーバー落ちるとかある?ていうかローカルなのにサーバーって概念あるんだ・・・と思いながら調査開始。
・・・やっぱ全部書くのめんどいからおおまかな結果だけ書くね。
結果
mysqld
を打ってみたら、
2025-02-16T20:51:40.203207Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.30) starting as process 33016
2025-02-16T20:51:40.206008Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
2025-02-16T20:51:40.206138Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
2025-02-16T20:51:40.206390Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory)
2025-02-16T20:51:40.206893Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-02-16T20:51:40.207033Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.30) MySQL Community Server - GPL.
しっかりサーバー落としとるやんけ。Shutdown complete(ドヤァ)ちゃうんじゃ。
原因
エラー文中4行目、「data」フォルダってやつがないよ!と言われたので大人しく追加。
ほんで再度mysqld打ったらすんなり通りやがりました。
なんで?さっきまでのは何だったの?こわ。意味不明。
というわけで似たようなエラーに遭遇したときは上記を参考にしていただけると助かるかもです。信じる者は救われますおそらく。
後日談
再度死んでました。救われません。
DBの中身もSelect文自体も重いものじゃないから、処理のタイムアウトじゃないよな・・・。サーバーとの接続が切れたっつったって、showできるし再接続もできたっぽいし、ンなわけなくねぇか・・・?
まさかと思い、開きっぱなしにしてた、DB接続したままの自作中Webを閉じてみた。
通るようになった!
二つ以上の接続がダメってこと・・・?しばらく調査しやす・・・。