sql >> Databasteknik >  >> RDS >> Mysql

InnoDB-tabeller finns i MySQL men säger att de inte existerar efter att ha kopierat databasen till ny server

Anledningen "visa tabeller;" fungerar beror på att mysqld endast kommer att skanna databaskatalogen efter .frm-filer. Så länge de finns, ser den en tabelldefinition.

Om du importerade data till MySQL och det här felmeddelandet inträffar, är det första jag omedelbart skulle göra att köra det här kommandot:(BTW Det här är MySQL 5.1.45, men fungerar i MySQL 5.x ändå)

mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

Om servern du importerade data till säger att InnoDB är inaktiverad, har du ett stort problem. Så här bör du göra:

1) Släpp all data från den nya importdataservern

2) Inställning av InnoDB för rengöring

3) kör SHOW MOTORER; och se till att InnoDB är fullt fungerande !!!

4) Ladda om mysqldump till den nya importservern

Ge det ett försök !!!



  1. Varför används inga nycklar i denna EXPLAIN?

  2. PostgreSQL felaktig sortering

  3. SQL-databasmigrering med kommandorad

  4. Infoga filinnehållet i MySQL-tabellens kolumn