Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/02/2017, à 18:04

abelthorne

[abandonné] Récupérer base/tables MySQL

Bonjour,
Suite à l'achat d'un SSD, j'ai réinstallé Ubuntu dessus et je me rends compte que j'ai complètement oublié d'exporter mes tables MySQL pour les remettre en place facilement. J'ai encore les fichiers de mon ancienne installation sur mon disque dur précédent ; qu'est-ce que je dois copier de l'ancienne installation sur la nouvelle pour retrouver ma base et mes tables MySQL ?

Dernière modification par abelthorne (Le 26/02/2017, à 17:38)

Hors ligne

#2 Le 25/02/2017, à 18:44

lann

Re : [abandonné] Récupérer base/tables MySQL

Directement en prenant les fichiers, je ne sais pas si ça fonctionne.
Par contre dans l'environnement MySQL, c'est :

mysqldump -u root -p rando > rando.sql

ou rando est ta base de données et rando.sql ton fichier sql sauvegardé

Hors ligne

#3 Le 25/02/2017, à 19:01

abelthorne

Re : [abandonné] Récupérer base/tables MySQL

Mais ça, c'est pour exporter une base installée vers un fichier, non ? Or, je n'ai plus de base installée, j'ai juste les données "en vrac" sur un disque dur. Je suppose qu'en les copiant ça marcherait mais je ne sais pas tellement où chercher pour les retrouver.

Hors ligne

#4 Le 26/02/2017, à 10:02

bruno

Re : [abandonné] Récupérer base/tables MySQL

Bonjour,

Si la version de MySQL est la même tu peux tenter de copier /var/lib/mysql.

Hors ligne

#5 Le 26/02/2017, à 11:22

abelthorne

Re : [abandonné] Récupérer base/tables MySQL

Ok, je vais tenter ça, merci.

Hors ligne

#6 Le 26/02/2017, à 16:48

abelthorne

Re : [abandonné] Récupérer base/tables MySQL

En copiant /var/lib/mysql (et, dans le doute, mysql-files et mysql-keyring), je récupère bien les bases mais sans aucun table dedans. Une idée sur ce qui pourrait coincer ?

EDIT : pourtant, le contenu est bien dans les dossiers. Mais je vois un truc bizarre : mes fichiers d'origine appartiennent à nm-openvpn:avahi. Alors je ne sais pas si c'est une question de proprio/permissions mais je ne comprends pas bien pourquoi ces noms de proprio:groupe...

EDIT 2 : dans PHPMyAdmin, cliquer sur "Privilèges" pour les bases concernées me dit que les tables sont marquées "crashed" et devraient être réparées...

Dernière modification par abelthorne (Le 26/02/2017, à 16:56)

Hors ligne

#7 Le 26/02/2017, à 16:59

lann

Re : [abandonné] Récupérer base/tables MySQL

pas de problèmes de droit ?

Hors ligne

#8 Le 26/02/2017, à 17:04

abelthorne

Re : [abandonné] Récupérer base/tables MySQL

Je n'en ai aucune idée : je ne sais pas à qui sont censés appartenir les fichiers ni d'où viennent ces nm-openvpn:avahi sur les fichiers d'origine. J'ai juste copié les fichiers en vrac, ils appartiennent donc à root. Si je change le proprio pour mysql:mysql ou nm-openvpn:avahi, aucun changement.

Hors ligne

#9 Le 26/02/2017, à 17:34

abelthorne

Re : [abandonné] Récupérer base/tables MySQL

Bon, après avoir réussi à tout péter MySQL et PHPMyAdmin, je me suis résolu à redémarrer sur mon ancien disque dur pour exporter les bases et les réimporter proprement dans un LAMP tout neuf. Donc, c'est réglé.

EDIT : pour ce qui est de ces histoires de proprio:groupe nm-openvpn:avahi, j'imagine que c'est un problème d'ID entre mon ancien système et le nouveau : avec des comptes créés dans un ordre différent, il donne le nouveau nom de l'utilisateur/groupe avec l'ID associé aux fichiers ?

Dernière modification par abelthorne (Le 26/02/2017, à 17:42)

Hors ligne

#10 Le 26/02/2017, à 18:06

bobe

Re : [abandonné] Récupérer base/tables MySQL

Oui, c'est bien ça.

Hors ligne

#11 Le 26/02/2017, à 18:10

Rufus T. Firefly

Re : [abandonné] Récupérer base/tables MySQL

Salut,

Il y a au moins une raison pour laquelle ça ne fonctionne pas.
Quand tu installes mysql, il y a déjà 3 bases system qui sont crées : information_schema, mysql, performance_schema
Dans information_schema, il y a, entres autres, une table COLUMNS, qui contient des informations sur toutes les colonnes, de toutes les tables, de toutes les bases, y compris les tiennes quand tu en crées. C'est évidemment mysql qui gère ça. A quoi ça lui sert ? Je n'en sais fichtrement rien. Mais une chose est sûre, cette table n'est pas correctement remplie si tu te contentes de copier une base dans le bon répertoire (/var/lib/mysql) même en lui donnant les droits adéquats.
Je n'ai pas tout exploré mais il se peut très bien que d'autres tables que COLUMNS soient concernées aussi.

Edit : j'arrive un peu tard, mais au moins tu as une amorce d'explication...

Dernière modification par Rufus T. Firefly (Le 26/02/2017, à 18:11)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#12 Le 26/02/2017, à 18:48

abelthorne

Re : [abandonné] Récupérer base/tables MySQL

En fait, j'avais copié (en vrac) tout le contenu de mysql, y-compris ces trois bases. En revanche, il y avait peut-être un problème de proprio/permissions, vu que j'ai fait des essais sur les fichiers de mes bases à moi mais pas sur celles-là. Ça aurait peut-être marché en les réattribuant à mysql au lieu de root.

Hors ligne

#13 Le 27/02/2017, à 16:17

bruno

Re : [abandonné] Récupérer base/tables MySQL

Bon désolé ma réponse était un peu courte. J'aurais peut-être du prendre la peine d'indiquer les étapes qui me paraissaient évidentes (mais qui ne le sont sans doute pas tant que cela…) :

- arrêter le serveur MySQL ;
- copier tous les fichiers de l'ancien /var/lib/mysql vers le nouveau ;
- remettre les droits d'accès et le propriétaire/groupe (mysql) si nécessaire ;
- relancer le serveur MySQL et tester la connexion aux bases de données.

Ceci dit ce n'est pas une méthode « propre ». La bonne méthode est celle que tu as utilisé en #9 : restaurer les bases de données à partir de leur sauvegarde.

Hors ligne