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

エラー1005(HY000):テーブルxを作成できません(errno:-1)

    これは古い質問ですが、私は今日これを入手し、解決策を見つけました(そして、errno =-1でそうです)。

    私たちのテーブルはInnoDBであり、数時間ごとに作成および破棄されます。最近、そのマスターをフォローするためにスレーブサーバーを起動しました。また、「innodb_file_per_table」オプションを使用します。

    エラーはマスターではなくスレーブでのみ発生します。問題は、数時間前にrsyncを使用してそのスレーブをマスターに最近同期したことです。

    Rsyncはテーブルファイルをコピーしましたが、一時的なテーブルであったため、その間にマスターによって削除されました。したがって、.idbファイルはスレーブに存在していましたが、マスターには存在していませんでした。

    マスターがテーブルを作成する要求を送信したとき、ファイルがすでに存在していたため、スレーブはできませんでした。 MySQLは、メタデータがテーブルが存在しないことを示しているため、テーブルが存在することを認識していませんでした。MySQLがファイルを作成しようとしていたと思いますが、存在していたため失敗しました。

    私の場合、解決策は別のフォルダーにある.idbファイルを削除することでした(もちろん、最初にバックアップコピーを使用します)。

    その後、データベースでテーブルを作成できるようになり、スレーブは再びマスターをフォローします

    そのrsyncを実行するためのより良い方法は、-deleteオプションを使用して、マスターから削除された古いファイルを削除することでした。

    とにかく、私が説明したような正確な状況ではないかもしれませんが、それは単に何らかの理由でそこに残された古いファイルである可能性があります。




    1. OracleでONUPDATECASCADEを使用して外部キーを作成するにはどうすればよいですか?

    2. MySQLDateに保存しようとしたときのJpaRepositorySQL構文エラー

    3. MySQLデータベースのフィールドへの入力

    4. varcharとcharを比較する