Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да коригирам повредата на InnoDB, която заключва име на таблица от създаването (errno:-1) на AWS RDS?

DDL в InnoDB не е транзакционен, така че е възможно информацията в .frm файл и речника на InnoDB да е различна. Във вашия случай изглежда, че .frm файлът липсва, но има осиротел запис в речника (е, всъщност записи в няколко речникови SYS_* таблици).

Не можете лесно да изтриете запис от речника. Нуждаете се от съответен .frm файл, така че MySQL да предаде вашия DROP на ниво InnoDB. С 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 .

Описах подобен проблем след неуспешна ALTER ТАБЛИЦА . Разгледайте го за повече подробности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Колко значими цифри трябва да запазя в моята база данни за GPS координата?

  2. Свързване с MySQL от Android с JDBC

  3. Как да изтриете потребител на база данни на MySQL в cPanel

  4. Защо нашите заявки се забиват в състоянието Writing to net в MySql?

  5. Не може да се свърже с отдалечен MySQL сървър