MySQLに突然アクセスできなくなった時の対処法
公開日:2021年07月29日
更新日:2022年07月29日
昨日までMySQLにアクセスできていたユーザーがアクセス不能になった場合の備忘録。
PHPからデータベースにアクセスした際のエラーは以下。
SQLSTATE[HY000] [1044] Access denied for user 'UserName'@'localhost' to database 'DBName'
ひとまずユーザーを再度作り直そうとシェルからDROP USERした際のエラーが以下。
MariaDB [(none)]> DROP USER 'UserName'@'localhost';
ERROR 1034 (HY000): Index for table 'db' is corrupt; try to repair it
エラーがでたので対象ユーザーを確認すると削除されている。
MariaDB [(none)]> SELECT user, host FROM mysql.user;
+------+-----------+
| User | Host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| pma | localhost |
| root | localhost |
+------+-----------+
4 rows in set (0.003 sec)
削除されたユーザーの作成を試みるとエラー。
MariaDB [(none)]> GRANT ALL ON sample.* TO UserName@localhost IDENTIFIED BY 'Pass';
ERROR 1030 (HY000): Got error 176 "Read page with wrong checksum" from storage engine Aria
phpMyAdminを起動してDB領域「mysql」を選択。
「すべてチェックする」をチェックして「テーブルを修復する」を選択。
テーブルの修復が完了。
修復後に削除されたユーザーを再作成すると今度はエラーなく実行された。
MariaDB [(none)]> GRANT ALL ON sample.* TO UserName@localhost IDENTIFIED BY 'Pass';
Query OK, 0 rows affected (0.007 sec)
ユーザーを再作成後、PHPからDBに接続すると問題なく動くようになった。
同じカテゴリーのコンテンツ