Transferer base SQL

ViPHP
ViPHP | 1380 Messages

09 sept. 2006, 18:14

Et bien non. Comme expliqué dans le tuto de Zeus LAOD DATA INFILE est réservé à des fichiers du type CSV.

As-tu utilisé l'utilitaire mysqldump pour tes backup? C'est en général indiqué dans les premières lignes du dump.
ripat

Eléphant du PHP | 351 Messages

10 sept. 2006, 07:26

Non j'ai utiliser la fonction transmettre de PHPMYADMIN pour télécharger le fichier SQL

Sinon j'ai trouvé une idée, il faudrait ouvrir le fichier puis lire les instructions et les executer une par une en PHP.
Avec bien sur le temps d'execution illimité

Mais le probleme c'est qu'il faut que j'upload le fichier sur le serveur et avec filezilla le fichier se bloque au bout d'un moment (45 MO !!!)

ViPHP
ViPHP | 1380 Messages

10 sept. 2006, 09:40

Si ton serveur dispose de la librairie zlib (phpinfo), compresse (gzip) avant de transférer.
ripat

Eléphant du PHP | 351 Messages

10 sept. 2006, 11:14

Merci mais j'ai trouvé une solution, donc là sur mon serveur y'a le fichier SQL

J'ai utilisé ce code :
$f = file_get_contents('base.sql');
mysql_query($f);
Mais le code ne s'exécute pas

Evidemment j'ai d'abord connecté à ma base MYSQL ensuite j'ai tapé ce code mais y'a une page blanche qui se charge rapidement et y'a rien de modifier.

Mammouth du PHP | 19672 Messages

10 sept. 2006, 11:32

Parce que mysql_query() ne peut exécuter qu'une seule requête à la fois.

Ripat et Zeus t'ont donné tous les éléments pour faire fonctionner ce que tu veux faire : si tu préfère le faire à ta propre manière, libre à toi, mais ne leur fais pas perdre leur temps.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 351 Messages

10 sept. 2006, 11:39

euh je sais pas si t'a compris mais ripat et zeus m'ont parler de LOAD DATA INFILE ensuite j'ai vu que mon fichier n'étais pas en CSV donc leur solution est impossible pour moi

Alors j'ai pas tous les éléments, j'ai rien !!!

Mammouth du PHP | 19672 Messages

10 sept. 2006, 11:43

Et si tu faisais une exportation en CSV à la place ? Il ne te resterait ensuite qu'à créer la structure de la base distante pour ensuite faire une importation avec le fichier CSV.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 351 Messages

10 sept. 2006, 11:47

A noter que je n'ai plus accès à l'ancienne base
Faut apprendre à lire Cyrano

Mammouth du PHP | 19672 Messages

10 sept. 2006, 11:54

Dis donc, tu n'es pas obligé d'être insolent en plus, continue à ce rythme et je vais verrouiller le sujet, la politesse n'est pas une option ici

Ceci dit, tu dois pouvoir exécuter ton fichier en local en utilisant la ligne de commande. donc recréer la base en local pour faire ensuite une exportation en CSV.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 351 Messages

10 sept. 2006, 12:18

Désolé mais je ne supporte pas quand on répond deux fois de suite à côté :?

Oui c'est une bonne idée, mais peut tu m'expliquer comment le faire en ligne de commande ?

Mammouth du PHP | 19672 Messages

10 sept. 2006, 12:30

Avec une invite de commande et mysqlimport : si MySQL est correctement indiqué dans le PATH de ta machine, tu fais la chose suivante :

Code : Tout sélectionner

C:>mysql nom_de_ta_base < chemin/ton-fichier-txt
Si tu as en retour que "mysql n'est pas une commande reconnue", alors déplace toi vers le répoertoire MySQL :

Code : Tout sélectionner

cd chemin/vers/le/repertoire/MySQL
Exemple sous Windows sur ma machine, ça va donner :

Code : Tout sélectionner

cd C:\Program Files\MySQL\MySQL_Server_5.0\bin
Et là te relances la ligne de commande indiquée plus haut.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 351 Messages

10 sept. 2006, 13:14

Merci, mais ça me met "Acces refusé pour l'utilisateur etc..."

Mammouth du PHP | 19672 Messages

10 sept. 2006, 14:20

Alors ta ligne de commande doit être modifiée comme suit:

Code : Tout sélectionner

C:>mysql -u ton-nom-utilisateur -p nom_de_ta_base < chemin/ton-fichier-txt
Et aussitôt après avoir appuyé sur la touche [Entrée], tu auras une demande de mot de passe : si tu as un accès du genre "root" sans mot de passe (pas bien :non:) appuie une nouvelle fois sur [Entrée] et observe la suite des évènements ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 351 Messages

10 sept. 2006, 14:42

Ouaw trop fort ça marche super ;)

Y'a pas une solution pour faire pareil sur ma base de donnée distante (j'ai un dédié OVH) ?

Mammouth du PHP | 19672 Messages

10 sept. 2006, 14:54

Si tu peux y accéder en ligne de commande, si bien sur, tu peux parfaitement faire la même chose. Uploade ton fichier sur le serveur distant, note soigneusement le chemin et refais l'opération. Tu seras probablement dans un environnement Linux, mais les lignes de commandes seront exactement les mêmes.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: