この記事では、MySQL®の破損についてデータベースをチェックする方法について説明します。データベースで破損が発生するのはなぜですか?ハードウェア、特にディスクベースの障害が原因で、またはディスクがいっぱいになったときに発生する可能性があります。
主な症状:ログインしようとすると、コンソールにエラーメッセージが表示されます:セッションの置換:テーブル「./DB_NAME/mdl_sessions2」はクラッシュとマークされているため、修復する必要があります 。
mysqlcheck
を使用して、この問題を確認および修復できます。 --auto-repair DBNAME
を使用したコマンド 国旗。 --auto-repair
を追加する場合 フラグ、MySQLはデータベースの破損を修復しようとします。
# mysqlcheck -u USER_NAME -p --auto-repair DB_NAME
Enter password:
db_test.adodb_logsql OK
db_test.mdl_assignment OK
db_test.mdl_assignment_submissions OK
...
db_test.mdl_log
error : Table './db_test/mdl_log' is marked as crashed and should be repaired
...
db_test.mdl_sessions2
error : Table './db_test/mdl_sessions2' is marked as crashed and should be repaired
Repairing tables
db_test_18_latest.mdl_log OK
db_test_18_latest.mdl_sessions2 OK
データベースが破損しているかどうかを確認したいだけの場合は、次のコマンドを実行します。
# mysqlcheck -c DATABASE_NAME -u USER_NAME -p
サーバー内のすべてのデータベースとテーブルをチェックする場合は、フラグ--all-databases
を追加します。 次のコマンドに示すように、データベースの名前を省略します。
# mysqlcheck -c -u USER_NAME -p --all-databases
データベース内のテーブルをチェックするだけの場合は、次のコマンドを実行します。
# mysqlcheck -a DB_NAME TABLE_NAME -u USER_NAME -p
この記事で紹介するコマンドを使用して、MySQLデータベースまたはテーブルの破損を確認できます。