sql >> Databáze >  >> RDS >> Mysql

Chyba tabulky MySQL neexistuje, ale existuje

Právě se mi to stalo a po chvíli jsem našel odpověď v článku na blogu a chtěl jsem ji sem dát také.

Pokud zkopírujete datový adresář MySQL z /var/lib/mysql do /path/to/new/dir , ale zkopírujte pouze složky databáze (tj. mysql , wpdb , ecommerce , atd.) A máte tabulky innodb, vaše tabulky innodb se zobrazí v 'show tables', ale budou se na ně dotazovat (select a describe ) se nezdaří s chybou Mysql error: table db.tableName doesn't exist . Zobrazí se .frm soubor v adresáři db a divíte se proč.

U tabulek innodb je důležité zkopírovat ib* soubory, což v mém případě byly ibdata1 , ib_logfile0 a ib_logfile1 . Jakmile jsem provedl přenos a ujistil se, že je zkopíruji, vše fungovalo podle očekávání.

Pokud váš soubor my.cnf obsahuje "innodb_file_per_table", soubor .ibd bude přítomen v adresáři db, ale stále potřebujete soubory ib*.



  1. najít důvody zablokování mysql

  2. heroku, postgreSQL, django, comments, tastypie:Zadanému jménu a typu argumentu neodpovídá žádný operátor. Možná budete muset přidat explicitní přetypování

  3. Systém hodnocení v PHP a MySQL

  4. Chyba serveru SQL - HRESULT E_FAIL byla vrácena z volání komponenty COM