2009-03-20 10 views
0

J'ai un tar.gz avec une mise à jour complète de la base de données mysql que je peux accéder via ftp. Ce tar.gz est mis à jour quotidiennement et je voudrais créer une connexion php et/ou mysql à ce compte ftp qui me permettrait d'exécuter cette grande requête sql sur mon serveur mysql local.Remote tar.gz avec SQL Server local exécuter

Des pensées?

Répondre

3

(je vais aller sur une branche et supposons que vous voulez faire à partir d'une boîte unix de quelque sorte ...)

Throw ceci:

#!/bin/bash 

wget      \ 
    -O -     \ 
    --ftp-user=username  \ 
    --ftp-password=password \ 
    "ftp://wherever/whatever.tar.gz" | tar xzOf - | mysql --user=whoever --password=secret dbname 

dans un fichier (update-db.sh par exemple), puis chmod il:

chmod 755 update-db.sh 

alors vous pouvez juste:

./update-db.sh 

chaque fois que vous souhaitez télécharger la mise à jour. Ou vous pouvez le lancer dans un travail cron (man crontab).

Édition: Ajout du drapeau O à tar afin qu'il soit extrait vers stdout.

+0

et puis-je exécuter la source tar.gz sql dans mon serveur mysql en même temps? Comment? –

+0

désolé je n'ai pas lu le script complet ... merci beaucoup gona l'essayer –

+0

qu'est-ce que ": mauvais interprète: No tel fichier ou répertoirein/bash" signifie ??? des idées? –

1

tout d'abord PHP prend en charge la lecture de FTP de la boîte, il suffit d'utiliser fopen avec le protocole FTP spécifié comme si

<?php 
$handle = fopen("ftp://user:[email protected]/somefile.txt", "w"); 
?> 

alors vous aurez besoin de décompresser l'archive. Ici File_Archive du dépôt de poire viendra très pratique

+0

C'est un début. Mais existe-t-il un moyen d'exécuter le SQL complet sans extraire? –

+0

Je ne pense pas. De toute façon aller avec la solution de Sean Je ne ai pas réalisé que vous utiliserez cron –

Questions connexes