sql >> データベース >  >> RDS >> Mysql

AWS RDSでのテーブル名の作成(errno:-1)をロックするInnoDBの破損を修正するにはどうすればよいですか?

    InnoDBのDDLはトランザクションではないため、.frmファイルとInnoDBディクショナリの情報が異なる可能性があります。あなたの場合、.frmファイルが欠落しているように見えますが、ディクショナリに孤立したレコードがあります(実際には、いくつかのディクショナリSYS_ *テーブルにレコードがあります)。

    辞書からレコードを簡単に削除することはできません。 MySQLがDROPをInnoDBレベルに渡すように、それぞれの.frmファイルが必要です。 RDSではそれを行うことはできません。

    ただし、データベース全体を削除することはできます。その場合、InnoDBは、孤立したレコードを含むすべてのレコードをディクショナリから削除します。

    したがって、辞書をきれいにするために、次のことをお勧めします:

    1. MySQLへのすべてのトラフィックを停止し、読み取り専用にします
    2. 一時データベースを作成するadstudio_tmp
    3. RENAME adstudioのすべてのテーブル adstudio_tmp
    4. DROP DATABASE adstudio 。この時点では空です。 DROP InnoDBディクショナリのすべてのエントリを消去します。
    5. RENAME adstudio_tmpから戻ったすべてのテーブル adstudio

    この後、辞書はクリーンになり、data_feed_paramを作成できるようになります。 。

    失敗した後、同様の問題について説明しました。表 。詳細については、チェックしてください。



    1. MySQL WorkbenchファイルをプレーンXMLとして保存することは可能ですか?

    2. MacでLaravelをセットアップするphp職人の移行エラー:そのようなファイルやディレクトリはありません

    3. コメントシステムの構築に関するアドバイス

    4. セッションでOracleで使用されている通貨記号を確認する