GNU/Linux >> Tutoriales Linux >  >> Linux

Recuperar la base de datos mysql:mysql/mysqldump da la tabla <base de datos>. <nombre de la tabla> no existe (1146)

Encontré a alguien haciendo una pregunta similar:MySQL> La tabla no existe. Pero lo hace (o debería).

Mike Dacre tenía la respuesta que resolvió mi problema. El problema era que ib_logfile0 e ib_logfile1 (y tal vez algunos de los otros archivos ib* en el directorio raíz mysql/) eran inconsistentes con mi nueva instalación de mysql. No puede simplemente colocar archivos db desde el antiguo directorio mysql/ y esperar que funcione.

Lo que hice para recuperar la base de datos fue hacer una copia de seguridad de mi /var/lib/mysql/ actual en la instalación nueva:

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

Luego copie el directorio de copia de seguridad de emergencia en /var/lib

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

A continuación, configure los permisos de forma adecuada (consulte ~/mysql.bku/ como referencia si es necesario). Puede haber comandos más eficientes para esto, pero incluyo lo que sé para completarlo en caso de que alguien con menos experiencia lo necesite.

$ 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

Y vuelva a iniciar mysql

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

Luego hice una copia de seguridad de las bases de datos que necesitaba:

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

Cuando terminé, volví a colocar el directorio mysql/ y luego importé las bases de datos de los archivos de volcado.

$ 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 resuelto, ahora tengo una exportación adecuada de la base de datos y mysql también se ejecuta correctamente. Todo lo que queda es seguir la guía Restaurar un wiki a partir de una copia de seguridad.


Linux
  1. Cómo reparar una tabla de base de datos Mysql dañada

  2. Importar una base de datos MySQL

  3. La tabla de errores de MySQL 'mysql.servers' no existe

  4. Duplicar toda la base de datos MySQL

  5. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql

Cómo crear una base de datos MySQL en Workbench

Cómo reparar la base de datos MySQL

Cómo hacer una copia de seguridad y restaurar una base de datos MySQL

Cómo optimizar tablas MySQL

Cómo insertar datos en la base de datos MySQL usando PHP en XAMPP

Cree una base de datos y una tabla MySQL usando PHP en XAMPP