1

問題: 私の db-host が突然 mysql db をあるサーバーから別のサーバーに切り替えました。残念ながら、ISAM を実行していたテーブルが 1 つあります。他のすべてのテーブルは MyISAM です。あるサーバーから別のサーバーに切り替えた後、ISAM テーブルは死んでいます!

デッドテーブルから SELECT しようとすると、PHP は「クエリ中に MySQL サーバーへの接続が失われました」を送信します。

PHPMyAdmin では、正常なテーブルにはそれに応じて列の値があります (レコード、タイプ、照合) 885 MyISAM latin1_swedish_ci

死んだテーブルには、3 つの列全体に「使用中」と書かれているだけです。

テーブルの構造を表示しようとすると:

からの完全なフィールド を表示しtable_nameます。

次のメッセージが表示されます: 1017 - ファイルが見つかりません: 'table_name' (errno: 2)

ありがとうございました!

4

1 に答える 1

0

ISAM ファイルはオペレーティング システムと mysql のバージョンに依存するが、MyISAM ファイルにはそのような依存関係がないという話を誰かが聞いたことがありますか? 実際、ファイルが破損しているのか、それともテーブルを強制終了した新しい OS への切り替えなのかはわかりません。mysql 3.23、4.01、および 5.1 で試しました。3.23 以上の isamchk は .MYD ファイルを検索するので、このバージョン以降に ISAM エンジンがリリースされると思います。-e (extend-check) または o- (safe-recover) を指定して 3.23 の isamchk を使用すると、「check delete-chain」コマンドの後にコンソール アプリが停止します。

isamchk を Mac や Linux、あるいはおそらく freebsd (db の元) で実行してみるのはいかがでしょうか? それとも実装はすべて同じですか?

ありがとう

于 2010-11-11T08:17:16.130 に答える