ホームページ >データベース >mysql チュートリアル >MySQL テーブルが SHOW TABLES には表示されるのに、SELECT クエリには表示されないのはなぜですか?

MySQL テーブルが SHOW TABLES には表示されるのに、SELECT クエリには表示されないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-07 05:49:12730ブラウズ

Why Does My MySQL Table Appear in SHOW TABLES But Not in SELECT Queries?

MySQL テーブル消失の難題が解決されました

SHOW TABLES が SELECT などのデータ操作にアクセスできないテーブルを表示するという不整合が発生した場合、根本的な原因は依然としてわかりにくいことがよくあります。潜在的な原因の 1 つは破損したテーブル ファイルであり、SHOW TABLES では検出できない可能性があります。

ある特定の例では、ユーザーが MySQL データ ディレクトリを変更した後にこの問題が発生しました。テーブルのファイルが存在しているにもかかわらず、そこからデータを選択するとエラーが発生しました:

ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist

この矛盾した動作により、SHOW TABLES はファイルの存在のみを検証し、整合性は検証しないのではないかという推測が生まれました。しかし、問題の根本は最終的に発見されました。

  • 問題のデータベースは、MySQL データ ディレクトリに保存されている ibdata1 および ib_logfile ファイルに依存する InnoDB テーブルを使用していました。
  • これらデータベースを移動したときに、新しいデータ ディレクトリにファイルが存在しませんでした。

問題を解決するために、ユーザーはこれらをコピーしましたファイルを新しいデータ ディレクトリにコピーすると、テーブルへのアクセスが正常に復元されました。これは、InnoDB ベースのデータベースをコピーするときに、その機能を保証するためにこれらのファイルを含めることの重要性を強調しています。

以上がMySQL テーブルが SHOW TABLES には表示されるのに、SELECT クエリには表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。