MySQL データディレクトリの変更: テーブルは存在するがアクセスできない
SHOW TABLES にテーブルが表示されるが存在エラーを返すという複雑な問題への対応アクセスすると、解決策が見つかりました。
MySQL データ ディレクトリを再配置した後、ある特定のデータベースでこの異常が発生しました。 SHOW TABLES を使用してデータベース内のテーブルに正常に接続し、リストしたにもかかわらず、データを取得しようとすると、「テーブル 'database.TABLE_ONE' が存在しません。」というエラー メッセージが表示されました。
当初の推測では、この動作は SHOW に起因すると考えられていました。 TABLES はファイルの整合性を検証せずにファイルの存在のみを検証します。ただし、別の原因が特定されました。
コマンド「cp -r /path/to/my/database /var/lib/mysql/new_database」を使用してデータベース ディレクトリを直接コピーすると、この問題が発生します。データベースが InnoDB テーブルを使用している場合、この特定のエラーが発生します。
解決策は、ib* ファイル (ibdata1、ib_logfile0、ib_logfile1 など) が MySQL データ ディレクトリのルート ディレクトリに存在することを確認することです。これらの重要なファイルをコピーすると、アクセス不能の問題は解決され、テーブル アクセスが復元されます。
以上がMySQL データ ディレクトリの移動: SHOW TABLES で存在しないテーブルが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。