Comment restaurer la base de données mysql à partir des fichiers physiques?

12

Je viens de réinstaller mon système, je n'ai pas fait de sauvegarde de vidage mais j'ai toujours le dossier physique de mes précédentes installations mysql.

Est-il possible de l'utiliser pour restaurer et mettre à jour ma configuration actuelle?

John
la source

Réponses:

11

C'est possible, mais pas suggéré. Si j'allais essayer, voici comment je le ferais.

  1. Installez mysql, configurez le plus près possible de l'ancien serveur ou utilisez simplement la même configuration. Assurez-vous qu'il démarre, redémarre et vous pouvez vous y connecter. Maintenant, fermez mysql.

  2. Éloignez l'ancienne installation avec mv /var/lib/mysql /var/lib/mysql.orig

  3. rsync ou copiez les nouveaux fichiers en place. sudo rsync -av /old/mysql/ /var/lib/mysql/Je suggère de conserver les fichiers d'origine dans leur état actuel au cas où cela ne fonctionnerait pas.

  4. sudo chown -R mysql: /var/lib/mysqlpuis démarrez mysql. Vérifiez les journaux, assurez-vous que les choses semblent bonnes, puis connectez-vous à Mysql. Faites un tour pour vous assurer qu'il ressemble à vos données.

En supposant que tout s'est bien passé, vous devriez être prêt. Maintenant, allez immédiatement faire un bon dos de Mysql afin que vous n'ayez pas à faire ce genre de non-sens la prochaine fois.

kashani
la source
1
Je ferais attention de faire l'étape 2 ci-dessus avant l'étape 1. Vous voulez vous assurer que l'installation et le démarrage de mysqld n'écrase pas votre ancienne base de données système.
malcolmpdx
C'est un bon point. J'ai supposé que / var / lib / mysql ne provenait pas de l'installation d'origine. Dans tous les cas, assurez-vous que vos fichiers d'origine ne se trouvent pas dans / var / lib / mysql avant de commencer. Vous voulez commencer avec une nouvelle instance de Mysql avant de commencer à essayer de charger vos données d'origine.
kashani
merci j'ai légèrement modifié l'étape pour m'adapter à mon environnement Zend Server CE & MacOS et ça marche!
John
@Kashani j'ai suivi ces instructions (centos) mais sur un nouveau serveur, je reçois la table mais les données et la table ne le font pas .. des idées? je vois toutes les tables dans le dossier, elles n'apparaissent tout simplement pas (il semble également que ce soit le bon jeu de caractères)
K2xL
2
@ K2xL Je ne suis pas sûr de ce que vous voyez. Si vous créez une nouvelle question avec les détails de ce que vous voyez et comment vous l'avez accomplie, je serais heureux de la regarder. Gardez à l'esprit que la méthode ci-dessus ne fonctionne que pour l'ensemble de l'installation de Mysql, pas pour la base de données individuelle car les tables Innodb ont des données stockées dans les fichiers ibdata principaux, que vous utilisiez ou non innodb_file_per_table.
kashani