Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tabela MySQL nie istnieje błąd, ale istnieje

Po prostu mi się to przydarzyło i po chwili znalazłem odpowiedź w artykule na blogu i chciałem ją również tutaj umieścić.

Jeśli skopiujesz katalog danych MySQL z /var/lib/mysql do /path/to/new/dir , ale skopiuj tylko foldery bazy danych (np. mysql , wpdb , ecommerce , itp.) ORAZ masz tabele innodb, Twoje tabele innodb pojawią się w 'pokaż tabele', ale zapytania o nie (select i describe ) zakończy się niepowodzeniem, z błędem Mysql error: table db.tableName doesn't exist . Zobaczysz .frm w katalogu db i zastanawiam się dlaczego.

W przypadku tabel innodb ważne jest, aby skopiować ib* pliki, którymi w moim przypadku były ibdata1 , ib_logfile0 i ib_logfile1 . Gdy wykonałem transfer, upewniając się, że je skopiowałem, wszystko działało zgodnie z oczekiwaniami.

Jeśli twój plik my.cnf zawiera „innodb_file_per_table”, plik .ibd będzie obecny w katalogu db, ale nadal potrzebujesz plików ib*.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prawidłowy sposób przekazywania od 5000 do 100 000 wartości w klauzuli mysql WHERE

  2. MySql używający poprawnej składni dla klauzuli over

  3. Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/var/lib/mysql/mysql.sock' (2)

  4. pole zamówienia mysql varchar jako liczba całkowita

  5. Jak mogę poprawić błąd ładowania MySQL?