Transferer base SQL

Eléphant du PHP | 351 Messages

07 sept. 2006, 18:49

Bonjour,

J'ai fait une sauvegarde d'une base de donnée en un fichier SQL de 45 MO j'essaie de l'importe dans mon autre base de donnée via PHPMyAdmin mais au moment de l'importation ça reste bloqué !

A noter que je n'ai plus accès à l'ancienne base

Comment faire ?

Merci

Mammouth du PHP | 19672 Messages

07 sept. 2006, 19:59

Parce que phpMyAdmin, c'est du PHP et avec une base de 45Mo, tu dois largement exploser le TimeOut qui est par défaut de 30 secondes.

Il faut envisager une autre méthode avec un LOAD DATA INFILE : tu crées la structure de la base et ensuite tu ne feras que l'importation des données, tu gagneras beaucoup de temps. Jette un coup d'oeil dans le forum FAQ, il y a un tuto sur LOAD DATA INFILE.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 351 Messages

08 sept. 2006, 16:02

Merci j'ai lu ce tuto mais je n'ai pas bien compris

Quelqu'un peut tu m'expliquer exactement la démarche à suivre ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 sept. 2006, 16:06

Qu'est-ce que tu n'as pas compris ?

Je veux bien te donner plus d'explications mais il faudrait me donner plus de détails sur ce que tu n'as pas compris ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 351 Messages

08 sept. 2006, 18:25

Voilà je voudrais savoir où je dois taper la commande et la syntaxe exacte de la commande

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 sept. 2006, 18:29

Pour la commande, tu peut soit la passer dans un mysql_query(), soit lancer une ligne de commande de la forme :

Code : Tout sélectionner

/chemin/vers/mysql LOAD DATA INFILE ...
Pour la syntaxe, tout est donné dans le tutorial :?

Est-ce que tu as des soucis de compréhension ? si oui, sur quels points ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 351 Messages

09 sept. 2006, 05:39

Voilà j'ai essayé ce code :

"LOAD DATA INFILE "C:\base.sql" INTO TABLE base"

Mais j'ai l'erreur :

"Access denied for user: 'user@localhost' (Using password: YES)"

Mammouth du PHP | 19672 Messages

09 sept. 2006, 08:13

ça veut dire que MySQl a besoin d'un mot de passe pour l'utilisateur "user"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 sept. 2006, 10:03

Quelque chose vient de me frapper :oops:

Quel est le contenu de ton fichier SQL ? S'il contient des instructions SQL, ça ne marchera pas avec LOAD DATA INFILE.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 351 Messages

09 sept. 2006, 11:36

Cyrano t'a completement faux

En fait le probleme vient de l'instruction qui est d'ailleurs mal détaillé dans la FAQ

en fait faut mettre

"LOAD DATA LOCAL INFILE "C:\base.sql" INTO TABLE base"

pour les fichiers local

Mais cette instruction a été désactivé dans mysql, comment faire pour changer les options (mysql_options ?)

Si quelqu'un s'y connait un peu mieux

Mammouth du PHP | 19672 Messages

09 sept. 2006, 11:44

Cyrano t'a completement faux
Désolé, mais ce message d'erreur est caractéristique :
"Access denied for user: 'user@localhost' (Using password: YES)"
Ça veut bien dire ce que ça indique. Ça peut être déclenché à cause d'une autre erreur, par exemple que l'utilisateur "user" n'est pas répertorié dans la liste des utilisateurs de MySQL, mais le résultat est le même.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 sept. 2006, 12:01

Plutot que de critiquer le tutorial qui n'est, comme son nom l'indique, qu'un introduction au LOAD DATA INFILE, je te conseille de te renseigner correctement.

Le lien que je donne en bas du tuto te redirige vers l'aide de MySQL qui indique bien qu'il faut mettre LOCAL uniquement si le fichier à interpreter par le serveur est sur le client.

Après, si tu ne nous donnes pas plus de détails sur l'endroit où se trouve ton fichier ... on pourra pas faire grand chose
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 332 Messages

09 sept. 2006, 12:52

Si tu as du code SQL à importer, tu ouvres le fichier dans un éditeur de texte d'un côté, tu ouvres phpMyAdmin de l'autre.

Tu fais un copier des 1000 premières lignes environ et tu les colles dans la boîte SQL de phpMyadmin, puis tu exécutes.
Quand c'est fait, tu effaces ces lignes et tu copies les 1000 suivantes, ...

Et ainsi de suite ... c'est bourrin, long et laborieux, mais ça marche à condition d'être un peu méticuleux

ViPHP
ViPHP | 1380 Messages

09 sept. 2006, 17:33

Quel est le contenu de ton fichier SQL ? S'il contient des instructions SQL, ça ne marchera pas avec LOAD DATA INFILE.
Sans une réponse à cette question oh combien judicieuse et pertinente on risque de se fourvoyer... (que diandre!) :-*

Alors, qu'y a t'il dans ce fichier??
ripat

Eléphant du PHP | 351 Messages

09 sept. 2006, 17:52

Il y'a effectivement des instructions SQL (CREATE ET INSERT principalement)

ça ne marchera pas avec LOAD DATE INFILE ?