Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Table non esiste errore, ma esiste

È successo solo a me e dopo un po' ho trovato la risposta in un articolo del blog e volevo metterla anche qui.

Se copi la directory dei dati MySQL da /var/lib/mysql a /path/to/new/dir , ma copia solo le cartelle del database (ad esempio mysql , wpdb , ecommerce , ecc.) E hai tabelle innodb, le tue tabelle innodb verranno visualizzate in "mostra tabelle" ma query su di esse (select e describe ) fallirà, con l'errore Mysql error: table db.tableName doesn't exist . Vedrai il .frm file nella directory db e mi chiedo perché.

Per le tabelle innodb, è importante copiare su ib* file, che nel mio caso erano ibdata1 , ib_logfile0 e ib_logfile1 . Dopo aver eseguito il trasferimento assicurandomi di copiarli, tutto ha funzionato come previsto.

Se il tuo file my.cnf contiene "innodb_file_per_table" il file .ibd sarà presente nella directory db ma hai ancora bisogno dei file ib*.