Bourinho Posté 18 Octobre 2006 Posté 18 Octobre 2006 (modifié) Bonjour le Hub, J'ai un petit mutualisé chez OVH et je n'arrive pas à importer ma base de données sur mon hébergement... J'ai pourtant essayer de suivre les instructions fournies sur le site suivant mais cela ne fonctionne pas... J'ai donc écrit le petit fichier php suivant : <?phpecho "Décompression du fichier.....";system("gunzip Labase.sql.gz");echo "Votre base est en cours de restauration......";system("cat Labase.sql | mysql --host=**host** --user=**user** --password=**pass** **LabaseOVH**");echo "C'est fini. Votre base est en place sur cet hébergement.";?> je n'ai aucun message d'erreur mais je ne retrouve pas mes données sur ma base chez OVH... Je ne trouve même pas le fichier décompressé dans le répertoire en question... Quelqu'un aurait il une idée pour me dépétrer de ce soucis??? Par avance, merci! [Edit] J'ai essayé avec le fichier suivant : <?phpecho "Décompression du fichier.....";system("gunzip Labase.sql.gz",$err1);echo $err1;echo "Votre base est en cours de restauration......";system("cat Labase2.sql | mysql --host=**host** --user=**user** --password=**pass** **LabaseOVH**", $err2);echo $err2;echo "C'est fini. Votre base est en place sur cet hébergement.";?> où Labase2.sql est le fichier Labase.sql.gz déjà dézippé... J'ai $err1=0 et $err2=1... Modifié 18 Octobre 2006 par Bourinho
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 (modifié) Bonjour, Il me semble que la comande pour importer tes données serait plutot : system("mysql --host=**host** --user=**user** --password=**pass** **LabaseOVH** < ./Labase2.sql > ", $err2); non ? Modifié 19 Octobre 2006 par Jeromnimo
Dan Posté 19 Octobre 2006 Posté 19 Octobre 2006 Pourquoi passer par une étape de décompression vers un fichier ??? Essaye plutôt directement: system("zcat Labase.sql.gz | mysql --host=**host** --user=**user** --password=**pass** **LabaseOVH**");
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 Bonjour à tous, Voila le fichier php que j'ai utilisé (je le met pour être sûr de la syntaxe, ça n'était peut être pas clair...) <?php$fichiergz='***.sql';$host='***';$user='***';$password='***';$labaseOVH='***';echo "Votre base est en cours de restauration......<br>";echo system('zcat '.$fichiergz.'.gz | mysql --host='.$host.' --user='.$user.' --password='.$password.' '.$labaseOVH,$err);echo "<br>".$err;echo "<br>C'est fini. Votre base est en place sur cet hébergement.";?> Voilà ce que j'obtiens à l'affichage de la page: Votre base est en cours de restauration...... 1 C'est fini. Votre base est en place sur cet hébergement. Ca semble plutôt bon signe... Le seul problème, c'est que quand je vais sur phpMyAdmin, il n'y a rien! Il est où le problème? Merci pour votre aide!
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 As-tu essayé avec la commande que je t'ai donné ? Au lieu de faire un pipe ('|' entre zcat et mysql) essaye avec une redirection de flux ('<')
Dan Posté 19 Octobre 2006 Posté 19 Octobre 2006 Pas de redirection (> ou <) entre deux commandes ! Je maintiens qu'entre zcat et mysql il FAUT un pipe.... zcat écrit sur stdout, et mysql lit le stdin. Donc le pipe | est ce qu'il faut !
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 (modifié) Salut et merci Jeromnimo....d'avoir essayer Voilà ce que cela me donne sur la page: Votre base est en cours de restauration...... 2 C'est fini. Votre base est en place sur cet hébergement. avec le fichier php suivant : <?php$fichiersql='***.sql';$host='***';$user='***';$password='***';$labaseOVH='***';echo "Votre base est en cours de restauration......<br>";echo system('mysql --host='.$host.' --user='.$user.' --password='.$password.' '.$labaseOVH.' <./'.$fichiersql.'>',$err);echo "<br>".$err;echo "<br>C'est fini. Votre base est en place sur cet hébergement.";?> A priori, le $err est plus élevé avec ta solution...c'est mieux? Mais je n'ai toujours rien sous phpMyAdmin (j'utilise celui d'ovh sur h**p://start.ovh.net/...) Merci pour votre aide et je pense que l'on devrait y arriver!!! Enfin, j'espère [Edit] Voilà le fichier base.sql que j'utilise -- phpMyAdmin SQL Dump-- version 2.6.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Jeudi 19 Octobre 2006 à 00:46 -- Version du serveur: 4.1.9 -- Version de PHP: 4.3.10 -- -- Base de données: `prv` -- -- -------------------------------------------------------- -- -- Structure de la table `departements` -- DROP TABLE IF EXISTS `departements`; CREATE TABLE `departements` ( `Numero` int(2) NOT NULL default '0', `Nom` varchar(30) NOT NULL default '', PRIMARY KEY (`Numero`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0; -- -- Contenu de la table `departements` -- INSERT INTO `departements` VALUES (1, 'AIN'); INSERT INTO `departements` VALUES (2, 'AISNE'); INSERT INTO `departements` VALUES (3, 'ALLIER'); Et j'ai essayé en utilisant "use MaBaseOVH;" au début de ce fichier... Modifié 19 Octobre 2006 par Bourinho
Dan Posté 19 Octobre 2006 Posté 19 Octobre 2006 Plutôt que de faire: system("mysql --host=**host** --user=**user** --password=**pass** **LabaseOVH** < ./Labase2.sql > ", $err2); essaie de faire die("mysql --host=**host** --user=**user** --password=**pass** **LabaseOVH** < ./Labase2.sql > "); et dis nous précisément ce que tu obtiens (en effaçant le mot de passe) Ca ne lancera pas la commande, mais cela permettra de voir ce que tu envoies ! Peut-être faut-il mettre le chemin complet vers 'zcat' et 'mysql'. Dan
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 Pas de redirection (> ou <) entre deux commandes ! Je maintiens qu'entre zcat et mysql il FAUT un pipe.... zcat écrit sur stdout, et mysql lit le stdin. Donc le pipe | est ce qu'il faut ! Bien vu ;-) mais dans ma solution, y'a ni cat, ni zcat :-P
Dan Posté 19 Octobre 2006 Posté 19 Octobre 2006 Bien vu ;-) mais dans ma solution, y'a ni cat, ni zcat :-P Alors c'est que tu t'es mal exprimé As-tu essayé avec la commande que je t'ai donné ? Au lieu de faire un pipe ('|' entre zcat et mysql) essaye avec une redirection de flux ('<')
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 Mea culpa J'aurais dû être plus explicite... Enfin bref, le principal c'est de trouver une solution pour Bourinho @ Bourinho : dans ton fichier sql tu n'as pas de requete de selection de base ou autre qui pourrait empecher d'executer correctement l'ensemble du fichier (du genre SELECT DATABASE) ? L'uitlisateur que tu utilises a bien tous les droits nécessaires ?
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 Je redonne le fichier que j'utilise pour faire ce test : -- phpMyAdmin SQL Dump-- version 2.6.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Jeudi 19 Octobre 2006 à 00:46 -- Version du serveur: 4.1.9 -- Version de PHP: 4.3.10 -- -- Base de données: `prv` -- -- -------------------------------------------------------- -- -- Structure de la table `departements` -- DROP TABLE IF EXISTS `departements`; CREATE TABLE `departements` ( `Numero` int(2) NOT NULL default '0', `Nom` varchar(30) NOT NULL default '', PRIMARY KEY (`Numero`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0; -- -- Contenu de la table `departements` -- INSERT INTO `departements` VALUES (1, 'AIN'); INSERT INTO `departements` VALUES (2, 'AISNE'); INSERT INTO `departements` VALUES (3, 'ALLIER'); avec "use MaBaseOVH;" au début et sans (comme c'est dit dans le tuto d'OVH...) et l'utilisateur que j'utilise correspond à ce qui m'a été donné par OVH... avec le password et le host fournis à la même occasion...
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 oki, et quand tu fais un copier-coller de la requete sous phpmuadmin (la premiere par exemple, la création de la table départements), elle passe bien ? tu te fais pas jeter à cause des droits ? Je connais pas OVH, donc pour ça je laisse Dan répondre
Dan Posté 19 Octobre 2006 Posté 19 Octobre 2006 Je connais pas OVH, donc pour ça je laisse Dan répondre Moi je connais OVH, mais surtout les serveurs dédiés. J'attends toujours que Bourinho nous donne l'affichage généré par le die() ....
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 Merci à tous pour votre aide... (Ca va tellement vite que j'ai du mal à suivre ) vec le fichier php suivant : <?php$fichiersql='prendrer007.sql';$host='sql';$user='prendrer007';$password='***';$labaseOVH='prendrer007';echo "Votre base est en cours de restauration......<br>";die('mysql --host='.$host.' --user='.$user.' --password='.$password.' '.$labaseOVH.' < ./'.$fichiersql.' >');echo "<br>".$err;echo "<br>C'est fini. Votre base est en place sur cet hébergement.";?> J'obtiens : Votre base est en cours de restauration......mysql --host=sql --user=prendrer007 --password=*** prendrer007 < ./prendrer007.sql > Voilà...
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 C'est quoi le '>' qui traine a la fin de la commande ????
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 Il vient de là : essaie de faire die("mysql --host=**host** --user=**user** --password=**pass** **LabaseOVH** < ./Labase2.sql > "); et dis nous précisément ce que tu obtiens (en effaçant le mot de passe) Il faut l'enlever???
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 Oui il vaudrait mieux... j'ai relu le topic, c'est de ma faute, c'est moi le premier à l'avoir mis, je ne sais pas pourquoi d'ailleurs... ????
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 Salut, Quand j'enlève le '>' à la fin, je passe de Votre base est en cours de restauration...... 2 C'est fini. Votre base est en place sur cet hébergement. à Votre base est en cours de restauration...... 1 C'est fini. Votre base est en place sur cet hébergement. Il n'y a que le $err qui passe de 2 à 1...
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 Oui, je pense que c'est parce que la redirection vers "rien" (le '>' final) donnait un code de retour 2 , alors que ton script retourne un code 1... Par contre j'arrive pas a trouver les codes de retour de la commande 'mysql'... TU as essayé la requete dans phpmyadmin ?
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 (modifié) Salut, Je pense qu'on est sur une piste... Voilà ce que me retourne phpMyAdmin : requête SQL: CREATE TABLE `departements` ( `Numero` int( 2 ) NOT NULL default '0', `Nom` varchar( 30 ) NOT NULL default '', PRIMARY KEY ( `Numero` ) ) ENGINE = MYISAM DEFAULT CHARSET = utf8 PACK_KEYS =0; MySQL a répondu:Documentation #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=utf8 PACK_KEYS=0' at line 5 avec le fichier suivant : -- phpMyAdmin SQL Dump-- version 2.6.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Jeudi 19 Octobre 2006 à 00:46 -- Version du serveur: 4.1.9 -- Version de PHP: 4.3.10 -- -- Base de données: `prv` -- -- -------------------------------------------------------- -- -- Structure de la table `departements` -- DROP TABLE IF EXISTS `departements`; CREATE TABLE `departements` ( `Numero` int(2) NOT NULL default '0', `Nom` varchar(30) NOT NULL default '', PRIMARY KEY (`Numero`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0; -- -- Contenu de la table `departements` -- INSERT INTO `departements` VALUES (1, 'AIN'); INSERT INTO `departements` VALUES (2, 'AISNE'); INSERT INTO `departements` VALUES (3, 'ALLIER'); C'est peut être un soucis de compatibilité entre mon PhpMyAdmin (v. 2.6.1) et celui d'OVH (v. 2.8.2.4)...non? Modifié 19 Octobre 2006 par Bourinho
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 D'apres la doc de mysql, ça sert à déterminer quel comportement doit être utilisé pour compresser les différents types de clés... http://dev.mysql.com/doc/refman/5.0/fr/create-table.html Quelle est la version du serveur mysql chez OVH ?
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 (modifié) C'est indiqué : Version du client MySQL: 5.0.18 [Edit] C'est aussi marqué : MySQL - 4.0.25-standard-log Modifié 19 Octobre 2006 par Bourinho
Jeromnimo Posté 19 Octobre 2006 Posté 19 Octobre 2006 Peut etre une réponse possible ? Apparement ca recoupe bien ton problème... http://forum.textpattern.com/viewtopic.php?id=14360
Bourinho Posté 19 Octobre 2006 Auteur Posté 19 Octobre 2006 Merci pour le lien, ça va certainement m'aider... Le truc qu'est rigolo, c'est que je peux importer ma "petite" base lorsque j'enlève le 'DEFAULT' devant CHARSET... C'est vraiment bizarre!!! Je vais étudier ton lien plus profondément pour m'en sortir plus proprement! Merci encore!
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant