Aller au contenu

Copie de base de donnée MySQL


Arofarn

Messages recommandés

Salut,

J'essaie de faire un script bash qui génère automatiquement une copie d'un Wiki sur une clé USB (merci EasyPHP).

Le principe que j'ai retenu est un script bash lancé une fois par jour par cron et qui met à jour le Wiki téléchargeable.

Je pense faire aussi un petit script qui fasse l'inverse (extraire les données de la clé USB pour les réinjecter dans un serveur LAMP)

Le serveur est sous Debian GNU/Linux, mais je peux rien installer dessus (hébergement mutualisé).

Pour la copie des fichiers aucun problème.

Par contre, pour la base MySQL, problème:

  • j'arrive à faire une sauvegarde avec la commande mysqldump sans soucis
  • je ne peux pas lancer le MySQL de la clef pour faire un mysqldump.exe pour réimporter les donée
  • je n'arrive pas à faire une copie exploitable (ensemble de fichiers *.frm, *.opt, *.MYP, *.MYI) pour la clé
  • le user et le nom de la base MySQL sont différents sur le serveur hébergé et le serveur local de la clé USB (ça joue peut-être)

Je suppose qu'il y a un truc que je ne connais pas :francais: et je galère....

Je ferais un petit tuto pour un WikiUSB près à télécharger quand j'aurais fini.

Lien vers le commentaire
Partager sur d’autres sites

Alors si j'ai bien tout compris, t'arrives bien à faire un dump de ta base de données avec mysqldump mais pas à le réimporter ensuite sur un autre serveur ?

Si c'est bien ça ton problème, alors c'est simple. La commande pour importer va ressembler à ça :

mysql --user=mon_login --password=mon_mot_de_passe --database=ma_table < /chemin/vers/mon/fichier.sql

Et hop.

Ah oui, note que tu pourrais aussi copier ta base de données en plaçant les fichiers .frm, .MYD et .MYI correspondants aux tables à transférer dans le répertoire data/mabase du serveur cible, mais après avoir fait ça il faut impérativement reconstruire la base en exécutant une requête "REPAIR TABLE" sur chaque table.

Cela dit le plus propre ça reste quand même d'importer un dump, la méthode ci-dessus ne sert généralement qu'en cas de gros massacre quand on n'a qu'une sauvegarde des fichiers pour restaurer un serveur qui a explosé.

Lien vers le commentaire
Partager sur d’autres sites

Si j'ai bien compris MySQL, pour lancer une commande "mysql" ou "mysqldump", il faut que la base de données en question tourne... ce qui n'est pas le cas (base de donnée en "sommeil" dans un répertoire), en plus la version qu'il y aura sur la clef USB est une Win32 et le serveur sur lequel j'exécute le script est une Debian.

Ensuite, je n'ai pas accès aux fichiers originaux .frm, .MYD ... car ils ce situent sur un serveur dédié chez mon hébergeur. MySQL server est protégé par un système de parefeu et accéssible seulement par les serveurs Web hébergés chez eux. Impossible d'accéder depuis chez moi directement au serveur MySQL.

La seule solution que j'entrevois se ferais en 2 étapes:

1- un script de sauvegarde de base sur le serveur héberger (script déjà réaliser à 95% manque juste un petit débug)

2- un script chez moi qui récupère la sauvegarde, "organise" la clé, lance MySQL Win32 dans un émulateur ou autres (Wine ???) pour importer le dump MySQL sur la base de la clef, créer l'archive et upload le résultat sur le serveur Web

outch !!! :|

Si c'est le cas, il va falloir que je me replonge dans un bon paquet de doc... (ça me fera pas de mal en fait).

En fait je pensais qu'il y aurais moyen d'importer un dump sans lancer le serveur MySQL cible...

Nota:

- pas question pour moi de faire le moindre script pour Windows ni d'installer un Windows pour ça

- peut-être faisable avec PHP mais j'ai un niveau qui tend vers zero (Python ??? je tend vers 0.001 c'est mieux !!!)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...