Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memperbaiki korupsi InnoDB yang mengunci nama tabel dari pembuatan (errno:-1) di AWS RDS?

DDL di InnoDB tidak bersifat transaksional sehingga mungkin saja informasi dalam file .frm dan kamus InnoDB berbeda. Dalam kasus Anda, sepertinya file .frm tidak ada tetapi ada record yang tidak digunakan lagi di kamus (well, sebenarnya record di beberapa tabel SYS_* kamus).

Anda tidak dapat dengan mudah menghapus catatan dari kamus. Anda memerlukan file .frm masing-masing sehingga MySQL meneruskan DROP Anda ke level InnoDB. Dengan RDS Anda tidak bisa melakukannya.

Tapi Anda bisa DROP seluruh database. Dalam hal ini InnoDB akan menghapus semua catatan dari kamus termasuk yang yatim piatu.

Jadi, untuk membersihkan kamus Anda, saya sarankan berikut ini:

  1. Hentikan semua lalu lintas ke MySQL, jadikan hanya-baca
  2. Buat database sementara adstudio_tmp
  3. RENAME semua tabel dari adstudio ke adstudio_tmp
  4. DROP DATABASE adstudio . Pada titik ini kosong. DROP akan menghapus semua entri dalam kamus InnoDB.
  5. RENAME semua tabel kembali dari adstudio_tmp ke adstudio

Setelah ini kamus akan bersih dan Anda akan dapat membuat data_feed_param Anda .

Saya menjelaskan masalah serupa setelah ALTER tidak berhasil TABEL . Lihat untuk detail lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Manakah dari kumpulan utf8 yang terbaik?

  2. php+mysql:masukkan array php ke mysql

  3. Cara lebih cepat untuk menghapus baris yang cocok?

  4. Kunci UNIK MySQL tidak berfungsi

  5. MySQL:Masukkan ke dalam beberapa tabel dalam kueri yang sama dengan BEGIN&COMMIT