GNU/Linux >> Linux Esercitazione >  >> Linux

Recupera database mysql - mysql/mysqldump restituisce la tabella <database>.<tablename> non esiste (1146)

Ho trovato qualcuno che faceva una domanda simile:MySQL> La tabella non esiste. Ma lo fa (o dovrebbe).

Mike Dacre ha avuto la risposta che ha risolto il mio problema. Il problema era che ib_logfile0 e ib_logfile1 (e forse alcuni degli altri file ib* nella directory mysql/root) non erano coerenti con la mia nuova installazione di mysql. Non puoi semplicemente inserire i file db dalla vecchia directory mysql/ e aspettarti che funzioni.

Quello che ho fatto per ripristinare il database è stato eseguire il backup del mio attuale /var/lib/mysql/ sulla nuova installazione:

$ sudo service mysql stop # Stop mysql. Command could be different on different distros
$ sudo mv /var/lib/mysql ~/mysql.bku

Quindi copia la directory di backup di emergenza in /var/lib

$ sudo cp -R /media/NAS/Backup/mysql /var/lib/

Quindi impostare le autorizzazioni in modo appropriato (fare riferimento a ~/mysql.bku/ per riferimento se necessario). Potrebbero esserci comandi più efficienti per questo, ma includo ciò che so per completezza nel caso in cui qualcuno con meno esperienza possa averne bisogno.

$ sudo chown -R mysql:mysql /var/lib/mysql
$ sudo find /var/lib/mysql/ -type d -exec chmod 700 {} \;
$ sudo find /var/lib/mysql/ -type f -exec chmod 660 {} \;
$ sudo chmod 644 /var/lib/mysql/debian-5.1.flag # Not sure what this is but the permissions were a bit different so include it just in case

E riavvia mysql

$ sudo service mysql start # Again command might be different on different distros

Quindi ho eseguito il backup dei database di cui avevo bisogno:

$ mysqldump -u root -p mediawiki-1_19_1 -c | gzip -9 > wiki.2012-11-15.sql.gz

Quando ho finito ho rimesso a posto la directory mysql/ e poi ho importato i database dai file di dump.

$ sudo service mysql stop
$ sudo mv /var/lib/mysql ~/mysql-discard # Too nervous to start typing "sudo rm -r /" for /var/lib/mysql, so move it away instead
$ sudo mv ~/mysql.bku /var/lib/mysql
$ sudo service mysql start

Problema risolto, ora ho un'esportazione corretta del database e anche mysql funziona correttamente. Non resta che seguire la guida Ripristino di un wiki dal backup.


Linux
  1. Come copiare tabelle MySQL tra database

  2. MySQL:come eseguire il backup (scaricare) e ripristinare il database utilizzando mysqldump

  3. Come riparare la tabella del database MySQL danneggiata

  4. Importa un database MySQL

  5. La tabella degli errori MySQL "mysql.servers" non esiste

Come creare database MySQL in Workbench

Come riparare il database MySQL

Come eseguire il backup e il ripristino di un database MySQL

Come ottimizzare le tabelle MySQL

Come inserire dati nel database MySQL utilizzando PHP in XAMPP

Crea database e tabelle MySQL usando PHP in XAMPP