GNU/Linux >> Tutoriels Linux >  >> Linux

Récupérer la base de données mysql - mysql/mysqldump donne la table <database>.<tablename> n'existe pas (1146)

J'ai trouvé quelqu'un qui posait une question similaire :MySQL > La table n'existe pas. Mais c'est le cas (ou cela devrait).

Mike Dacre a eu la réponse qui a résolu mon problème. Le problème était que ib_logfile0 et ib_logfile1 (et peut-être certains des autres fichiers ib* dans le répertoire mysql/ root) étaient incompatibles avec ma nouvelle installation de mysql. Vous ne pouvez pas simplement déposer les fichiers db de l'ancien répertoire mysql/ et vous attendre à ce qu'il fonctionne.

Ce que j'ai fait pour récupérer la base de données a été de sauvegarder mon /var/lib/mysql/ actuel sur la nouvelle installation :

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

Copiez ensuite le répertoire de sauvegarde d'urgence dans /var/lib

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

Définissez ensuite les autorisations de manière appropriée (reportez-vous à ~/mysql.bku/ pour référence si nécessaire). Il peut y avoir des commandes plus efficaces pour cela, mais j'inclus ce que je sais pour être complet au cas où quelqu'un avec moins d'expérience en aurait besoin.

$ 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

Et redémarrez mysql

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

Ensuite, j'ai sauvegardé les bases de données dont j'avais besoin :

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

Quand j'ai eu fini, j'ai remis le répertoire mysql/ puis j'ai importé les bases de données à partir des fichiers de vidage.

$ 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

Problème résolu, j'ai maintenant une bonne exportation de la base de données et mysql fonctionne également correctement. Il ne reste plus qu'à suivre le guide Restaurer un wiki à partir d'une sauvegarde.


Linux
  1. Comment réparer une table de base de données MySQL corrompue

  2. Importer une base de données MySQL

  3. Comment planifier une sauvegarde de base de données MySQL sur Ubuntu

  4. Dupliquer toute la base de données MySQL

  5. Comment copier une table d'une base de données mysql vers une autre base de données mysql

Comment créer une base de données MySQL dans Workbench

Comment réparer la base de données MySQL

Comment sauvegarder et restaurer une base de données MySQL

Comment optimiser les tables MySQL

Comment insérer des données dans la base de données MySQL à l'aide de PHP dans XAMPP

Créer une base de données et une table MySQL à l'aide de PHP dans XAMPP