sql >> Databasteknik >  >> RDS >> Mysql

MySQL Table existerar inte fel, men det finns

Detta hände mig precis och efter ett tag hittade jag svaret på en bloggartikel och ville lägga det här också.

Om du kopierar MySQL-datakatalogen från /var/lib/mysql till /path/to/new/dir , men kopiera bara databasmapparna (dvs. mysql , wpdb , ecommerce , etc) OCH du har innodb-tabeller, dina innodb-tabeller kommer att dyka upp i "visa tabeller" men frågor om dem (select och describe ) kommer att misslyckas, med felet Mysql error: table db.tableName doesn't exist . Du kommer att se .frm fil i db-katalogen och undrar varför.

För innodb-tabeller är det viktigt att kopiera över ib* filer, som i mitt fall var ibdata1 , ib_logfile0 och ib_logfile1 . När jag väl gjorde överföringen och såg till att kopiera dem fungerade allt som förväntat.

Om din my.cnf-fil innehåller "innodb_file_per_table" kommer .ibd-filen att finnas i db-katalogen men du behöver fortfarande ib*-filerna.



  1. Hur man lägger raden överst i mysql-frågan.

  2. Bästa praxis för att lagra databaslösenord

  3. Hur håller data inte sorteras?

  4. Zend_Db ordning efter fält Värde