LOCK TABLES の使用時に mysqldump テーブルが存在しません

Created:

2016-11-16 13:02:07 UTC

Modified:

2017-08-22 00:04:04 UTC

19

Was this article helpful?


Have more questions?

リクエストを送信

LOCK TABLES の使用時に mysqldump テーブルが存在しません

症状

MySQL データベースのダンプが以下のエラーで失敗します。

mysqldump: Got error: 1146: Table ' ' doesn't exist when using LOCK TABLES

原因

  1. InnoDB データファイルを削除して再作成したが、InnoDB テーブルの該当する .frm ファイルをデータベースディレクトリから削除し忘れたか、.frm ファイルを別のデータベースに移動した。 show tables でチェックしてください。
  2. mysql データディレクトリのテーブルファイルのパーミッションおよび所有権が正しくない。
  3. テーブルが破損している。
  4. テーブルが大文字で作成された。

解決策

  1. show tables でチェックして、テーブルがリストされない場合は .frm ファイルをデータベースディレクトリから移動します。
  2. mysql データディレクトリのテーブルファイルのパーミッションおよび所有権が正しくありません。適切な所有権は mysql ユーザ、パーミッションは 660 です。
  3. テーブルを修復します。
  4. lower_case_table_names を設定します。

上記のポイントがすべて適切な場合、 mysqldump --skip-lock-tables を使用します。

他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。