importer sa base de distant vers local

Mammouth du PHP | 19672 Messages

15 oct. 2008, 10:30

Berzemus j'ai les MySQL GUI Tools mais je ne trouve aucun outil pour faire ça dedans
Dans MySQL Administrator il y a un outil "Backup"...
Malheureusement, comme c'est pour récupérer uine base distance, ça ne fonctionnera pas, Mysql Administrator ne permet pas de se connecter à distance. Quant à pouvoir l'installer sur le serveur distant, ça dépend si nous avons affaire à un serveur dédié ou mutualisé. Dans ce dernier cas, on peut oublier ça.

Ceci dit, comme l'a fort justement souligné Zeus, ça ne sera jamais aussi rapide que mysqldump en ligne de commande, ce n'est vraiment pas compliqué à utiliser et c'est complètement paramétrable. La doc est assez complète sur le sujet. Si donc tu as un accès à MySQL en ligne de commande sur ton serveur, tu vas passer largement moins de temps à apprendre à écrire une ligne de commande mysqldump que si tu tentes d'utiliser à tout prix un client assorti d'une interface graphique plus attrayante.
Et la ré-injection du dump obtenu sera vraiment très rapide aussi en local avec une petite ligne de commande tout aussi simple.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2287 Messages

15 oct. 2008, 18:06

je ne cause pas a de gens qui traitent de troll les gens d'un autre avis , ça rejoint l'extrême droite , admin modérateur ou autre peu importe
J'aime peut-être les causes perdues, mais je veux tout de même tenter de t'ouvrir les yeux. En supposant que tu ne le saches pas déjà, voici ce qu'est un troll :
Sur les réseaux informatiques, notamment Internet et Usenet, on utilise le terme troll pour désigner, sur un espace de discussion (de type forum), un utilisateur qui cherche à créer une polémique en provoquant les participants.
[ ... ]
-le troll a souvent tort mais il est convaincu du contraire et en est fier.
J'essaye de te démontrer, arguments à l'appui, que le préjugé "outil en ligne de commande=obsolète" que tu martèles à chacun de tes posts ne tient pas. Quels arguments as-tu produit de ton côté pour justifier ton opinion ? Absolument aucun. J'en déduis que soit tu es le roi des obstinés, soit tu trolles.

Maintenant tu peux toujours me traiter de tous les noms d'oiseaux et me comparer à l'ensemble des régimes totalitaires de la planète, ça ne me fera que sourire davantage :-) Mais je t'invite cordialement à oublier ce préjugé sur ce site et pour toi-même, ou bien si tu le peux à produire des arguments valides pour en discuter (et également, de lire attentivement les réponses au sujet que tu as toi-même initié).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Mammouth du PHP | 19672 Messages

15 oct. 2008, 18:40

Si on restait dans le sujet les copains ? :roll:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 109 Messages

16 oct. 2008, 07:36

Cyrano la ligne de commande sur windows xp est une fenêtre dos, il est impossible d'y copier-coller quelque chose et il n'y a aucune retouche possible dans la ligne écrite , une interface graphique est juste un intermédiaire convivial

mais de toute manière ou trouve t on ce mysqldump ? je ne vois aucune trace de ce programme sur windows xp et je ne trouve pas ou le telecharger

merci pour l'aide
Modifié en dernier par rufus_ le 16 oct. 2008, 07:44, modifié 1 fois.

Mammouth du PHP | 19672 Messages

16 oct. 2008, 07:43

Dans l'invite de commande Windows, tu n'as null besoin de coller quoique ce soit. Si tu as récupéré un fichier du dump de ta base distante, il te faut maintenant ré-importer ça dans ta base locale.

Donc la première chose, c'Est de passer sous MySQL en ligne de commande en saisissant

Code : Tout sélectionner

mysql -u root -p
Là, ça va te demander un mot de passe pour pouvoir te connecter... s'il y en a un. Sinon, oublie le "-p"

Ensuite, tu sélectionnes la base dans laquelle tu veux travailler:

Code : Tout sélectionner

USE nomDeLaBaseAUtiliser;
Enfin, on appelle le fichier de dump :

Code : Tout sélectionner

source chemin/vers/le/fichier.sql
Et là tu laisse faire et tu attends la fin.

Si quelque chose ne se passe pas de la manière indiquée, reviens nous dire à quel endroit.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 109 Messages

16 oct. 2008, 07:53

Cyrano ce que tu appelles un fichier dump c'est le fichier sql qui fait plus de 200 000 lignes dans mon cas ?
avec tous les create et les insert pour reformer la base totalement ?

si c'est le cas sur mon serveur distant ca plante car le fichier est trop volumineux et je ne peux même pas récupérer ce fichier

avec MS SQL serveur 2005 il suffit de connecter le serveur local au serveur distant et de rapatrier la base , il n'y a rien d'autre a faire
c'est ce genre d'outil qui doit bien exister avec MySQL sinon on est condamne ou a rester chez le même hébergeur ou a laisser sa base

mais ou télécharge t on mysqldump ?

merci encore
Modifié en dernier par rufus_ le 16 oct. 2008, 07:59, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 oct. 2008, 07:59

Comment fait tu pour exporter le fichier depuis le serveur distant ? (au fait, c'est bien celui là le fichier de dump)
Quel outil utilises-tu ?

PS : concernant les accusations que tu fais en partie à mon égard, le ton de ma réponse est aligné sur le ton de ta prise de position. Et évite de me parler d'extrême droite, tu ne me connais pas, et si c'était le cas, tu saurais à quel point tu as dit une bétise plus grosse que toi ...

PS2 : tu tires sur la ligne de commande, mais si tu avais essayé, tu auras déjà terminé :?
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

Mammouth du PHP | 19672 Messages

16 oct. 2008, 08:14

mais ou télécharge t on mysqldump ?
mysqldump est une commande native dans MySQL. Si tu veux exporter le fichier distant vers ta machine locale, il faut d'abord le créer sur le serveur, si possible avec la ligne de commende en utilisant musqldump, puis le récupérer via FTP par exemple pour le mettre sur ta machine locale.

Tu as essayé quoi jusqu'à maintenant et avec quels utilitaires au juste ???
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 109 Messages

16 oct. 2008, 08:18

Cyrano la ligne de commande me dit que j'ai une erreur de syntaxe dans mon fichier a la ligne 1 (en gras)


CREATE TABLE `TEST_acl_groups` (
`group_id` mediumint(8) unsigned NOT NULL default 0,
`forum_id` mediumint(8) unsigned NOT NULL default 0,
`auth_option_id` mediumint(8) unsigned NOT NULL default 0,
`auth_role_id` mediumint(8) unsigned NOT NULL default 0,
`auth_setting` tinyint(2) NOT NULL default 0,
KEY `group_id` (`group_id`),
KEY `auth_opt_id` (`auth_option_id`),
KEY `auth_role_id` (`auth_role_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

si j'exécute ce fichier dans phpmyadmin bien évidemment la table est crée

et c'est la première instruction de mon fichier sql généré depuis le phpmyadmin du serveur distant
chez mon hebergeur je n'ai que phpmyadmin pour generer ce fichier il n'y a bien sur aucune ligne de commande


voici la fenetre des commandes
Image

Mammouth du PHP | 19672 Messages

16 oct. 2008, 08:49

Ok, je vois :
là, tu as directement ouvert le client en ligne de commande de MySQL : la partie "-u root" est donc hors cadre.

Refais la même chose directement avec "USE bdtest"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 109 Messages

16 oct. 2008, 08:59

J'ai récupéré le fichier dump (il fait 55254 ko et 1934 lignes) chez mon hébergeur par FTP qui a un outil de backup
j'exécute
Image



le debut du fichier
-- MySQL dump 10.10
--
-- Host: localhost Database: rufus
-- ------------------------------------------------------
-- Server version 5.0.22-community-max-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `phpbb3_acl_groups`
--

DROP TABLE IF EXISTS `phpbb3_acl_groups`;
CREATE TABLE `phpbb3_acl_groups` (
`group_id` mediumint(8) unsigned NOT NULL default '0',
`forum_id` mediumint(8) unsigned NOT NULL default '0',
`auth_option_id` mediumint(8) unsigned NOT NULL default '0',
`auth_role_id` mediumint(8) unsigned NOT NULL default '0',
`auth_setting` tinyint(2) NOT NULL default '0',
KEY `group_id` (`group_id`),
KEY `auth_opt_id` (`auth_option_id`),
KEY `auth_role_id` (`auth_role_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 oct. 2008, 09:32

L'erreur n'est pas dans ton fichier, mais c'est la commande que tu tappes qui est fausse.
Tu ne peux pas donner directement le nom du fichier une fois connecté.
Et si j'en crois ta console, tu cliques sur l'icone Wamp, puis sur "mysql" et finalement sur "mysql console", vrai ?

Alors, a la place, ouvre une fenetre DOS standard ("Demarrer">"Executer" et tapes "cmd" dans l'invite de commande)

Voici la commande à utiliser et son explication

Code : Tout sélectionner

C:\wamp\bin\mysql\mysql5.0.50b\bin\mysql.exe -u root dbtest < E:/mysql/dbtest1.sql

Code : Tout sélectionner

C:\wamp\bin\mysql\mysql5.0.50b\bin\mysql.exe
correspond au chemin vers ton exécutable mysql. Si je regarde ta fenêtre, j'ai l'impression que le tien est C:\wamp\bin\mysql\mysql5.0.50b\bin\mysql.exe

Code : Tout sélectionner

-u root
comme te l'a expliqué Cyrano, c'est là que tu donne l'utilisateur à utiliser. Sous wamp, par défaut, c'est "root" sans mot de passe

Code : Tout sélectionner

dbtest
C'est le nom de la base de données dans laquelle les données vont être enregistrées
Ce caractère redirige les données depuis le fichier de droite vers la commande de gauche. Dans ce cas, redirige le contenu du dump vers la commande mysql

Code : Tout sélectionner

E:/mysql/dbtest1.sql
Le chemin complet vers ton fichier de dump.


Normalement, en copiant collant ma commande, ça devrait fonctionner. Mais je t'invite à prendre le temps de comprendre cette ligne. Ce n'est pas compliqué et elle pourra t'être à nouveau utile.
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

ViPHP
ViPHP | 4039 Messages

16 oct. 2008, 09:47

(...) fenêtre dos, il est impossible d'y copier-coller quelque chose(...)
Bien sur que si. Essaye le clic droit sur la fenêtre, tu verras les classiques copier/coller. Le fonctionnement est juste un peu bizarre. Pour copier, il faut d'abord marquer la zone, puis appuyer sur enter. Pour coller, un clic droit -> coller, et ça marche.

Et ce n'est pas dos. C'est la ligne de commande de winxp. Il n'y a plus rien de dos la dessous, sinon que ça y ressemble.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 109 Messages

16 oct. 2008, 10:04

zeus tu me permets un gros mot ?
putain de merde que c'est génial :-)
ca marche

merci et excuses

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 oct. 2008, 10:19

;)

Et franchement, je me permet alors d'enfoncer le clou, mais une fois que tu la connais, tu te la stockes dans un petit fichier texte et la prochaine fois que tu veux importer quelque chose, il suffit de la copier/coller

Sinon, pour bien finir ce post, il te suffit de cliquer sur le bouton [RESOLU] en haut à gauche de ton 1er message ;)
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