Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/01/2015, à 21:58

gringo75

[Résolu] Problème import de base de données mysql en ligne de commande

Bonjour à tous,

Je souhaiterais solliciter les connaisseurs concernant l'import de base de données (bdd dans la suite) via mysql en ligne de commande.
Ma configuration :
Ubuntu 14.04.1 LTS
php ; mysql 5.5.4 et phpmyadmin
J'ai une base installée appelée "mabase"  dans phpmyadmin que j'ai réussi à importer via phpmyadmin sans problème.

Pour info, mes tests se font actuellement en local.

=> Le problème est que dans le cadre de mon apprentissage je souhaiterais savoir importer ma base en ligne de commande. Après des recherches, les différentes tutoriels concordent pour indiquer de faire :

$ mysql - u login -p nom_bdd < bdd.sql

donc dans mon cas :

$ mysql -u monlogin -p mabase < bdd.sql

Or, lorsque je fais cela, j'ai un message d'erreur :

bash: bdd.sql: Aucun fichier ou dossier de ce type

Malgré mes recherches, je n'ai pas trouvé un forum qui aborde cette question. Donc si quelqu'un a la solution, merci d'avance.

gringo75

Dernière modification par gringo75 (Le 26/01/2015, à 00:24)

Hors ligne

#2 Le 25/01/2015, à 22:11

jplemoine

Re : [Résolu] Problème import de base de données mysql en ligne de commande

La syntaxe est

mysql --user=monlogin --password=motdepasse nomdelabase < bdd.sql 

Il faut que le fichier bdd.sql existe dans le répertoire courant. Sinon, il faut donner le chemin.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 25/01/2015, à 22:34

tiramiseb

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Salut,

La syntaxe de gringo75 est correcte.

Par contre, gringo75, en effet le fichier bdd.sql n'est pas dans le répertoire courant, c'est tout. Il est où ce fichier ?

Hors ligne

#4 Le 25/01/2015, à 22:48

gringo75

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Tout d'abord, merci à tous les 2 pour votre réactivité.
Si j'ai bien compris, il faut créer au préalable un fichier bdd.sql dans le répertoire courant où je me trouve quand je tape la commande mysql.

J'ai donc fait :

$ touch bdd.sql 

dans le répertoire où je me trouve quand je tape la commande mysql (=c'est bien cela que l'on appelle le répertoire courant ?)
puis

$ mysql -u monlogin -p mabase < bdd.sql

cela me demande bien mon password (c'est déjà un bon point par rapport à avant) et quand je le tape je n'ai pas de message d'erreur.
Par contre quand j'ouvre mon fichier bdd.sql, aucune donnée n'a été copiée !? Il est vide !!!
Une idée ?

gringo75

Dernière modification par gringo75 (Le 25/01/2015, à 22:50)

Hors ligne

#5 Le 25/01/2015, à 22:52

jplemoine

Re : [Résolu] Problème import de base de données mysql en ligne de commande

il faut que bdd.sql contienne "les commandes" SQL à importer...


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#6 Le 25/01/2015, à 22:52

jplemoine

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Parce que là, tu as importé un fichier vide... wink


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#7 Le 25/01/2015, à 22:59

gringo75

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Merci jplemoine,
mais qu'entends-tu par "bdd.sql doit contenir des commandes SQL à importer..."

Faut-il que j'écrive "mysql -u monlogin -p mabase < bdd.sql" dans le fichier bdd.sql même si cela me paraîtrait étrange.

Dernière modification par gringo75 (Le 25/01/2015, à 23:00)

Hors ligne

#8 Le 25/01/2015, à 23:02

tiramiseb

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Salut,

Tu demandes comment importer une base en ligne de commande.
Une base "exportée" c'est une liste de commandes SQL.
Donc le fichier "bdd.sql" doit contenir cette base "exportée" que tu veux importer.

Tu demandes comment importer une base en ligne de commande.
Tu as déjà la bonne réponse, depuis le début : mets ta "base à importer" dans le fichier "bdd.sql".

Hors ligne

#9 Le 25/01/2015, à 23:08

gringo75

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Désolé de vous le dire mais je ne comprends pas tout, je ne suis pas un spécialiste de mysql mais quand (tiramiseb) tu dis qu'il faut mettre  ta "base à importer" dans le fichier "bdd.sql", je ne comprends pas trop.
Je m'explique :
1- que veut dire concrètement "mettre ma base à importer dans mysql" =>si je veux importer c'est pour me faciliter la tache et avoir directement ma base donc si je dois la copier (comment ?) à quoi sert de l'importer.
Si quelqu'un avait un exemple concret à me donner cela m'aiderait car là je ne comprends plus trop ?

Hors ligne

#10 Le 25/01/2015, à 23:15

tiramiseb

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Tu dis que tu veux importer une base de données.

C'est quoi précisément ce que tu veux importer ?
Où sont tes données à importer ? Sous quelle forme ?

Hors ligne

#11 Le 25/01/2015, à 23:38

gringo75

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Merci tiramiseb pour ton aide,

Pour être plus concret :
j'ai une base dans phpmyadmin en local et je souhaitais l'importer.
Mais suite aux différentes remarques que j'ai eues, j'ai fait mes recherches et de ce que j'ai compris, il faut d'abord que j'exporte la base voulue pour "préparer" l'importation.
A priori, je n'avais pas fait une 1ère étape qui consiste à faire :

$ mysql -h localhost -u monlogin -p mabase > bdd.sql

=>J'ai lancé la commande mais ça rame depuis plusieurs minutes MAIS de ce que j'ai compris, une fois que ça sera ok, il faudra alors faire :

$ mysql -u monlogin -p mabase < bdd.sql

C'était cela ?
Je vous tient au courant.
gringo75

Dernière modification par gringo75 (Le 25/01/2015, à 23:39)

Hors ligne

#12 Le 25/01/2015, à 23:48

tiramiseb

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Voilà, menfin là tu exportes une base de données pour la réimporter ensuite au même endroit : j'imagine qu'en réalité tu remplaces "mabase" par deux noms de bases différentes, dans chaque commande.

il faut d'abord que j'exporte la base voulue pour "préparer" l'importation.

Bah il ne s'agit pas vramient de "préparer" l'importation. Si tu veux importer quelque chose, il faut avoir quelque chose à importer. Et l'action qui consiste à prendre une base et la rendre "importable", c'est l'export...

Tant qu'il n'y a pas eu d'export préalable, il n'y a rien à importer smile

Hors ligne

#13 Le 25/01/2015, à 23:55

gringo75

Re : [Résolu] Problème import de base de données mysql en ligne de commande

En fait l'idée, c'est 3 choses en même temps smile :
1- Savoir importer une bdd en ligne de commande car via phpmyadmin je sais faire.
2- Faire une sauvegarde de ma base à un temps t.
3- Exporter ma base vers un site web que je veux héberger; mes données sont actuellement en local sur phpmyadmin et je vais devoir les exporter vers le serveur de l'hébergeur; donc je veux avoir un fichier.sql à exporter.
Donc oui ma base pourra être appelée avec un nom différent...ou le même vu qu'elle sera exportée vers un autre endroit smile

Sinon, j'ai réessayé une 2ème fois car après avoir fait la 1ère étape d'export, la ligne de commande reste bloquée après que j'ai indiqué mon password même après plusieurs minutes. Le temps d'export me paraît long, pourtant c'est une bdd exportée toute petite. C'est normal ?

Dernière modification par gringo75 (Le 25/01/2015, à 23:56)

Hors ligne

#14 Le 25/01/2015, à 23:58

tiramiseb

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Ah ben mince non désolé, j'ai mal lu, la commande d'export que tu as montrée n'est pas la bonne !
C'est mysqldump qu'il faut utiliser.

$ mysqldump -u monlogin -p mabase > bdd.sql

(si l'hôte est localhost, tu peux laisser tomber l'option "-h")

Hors ligne

#15 Le 26/01/2015, à 00:22

gringo75

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Merci beaucoup Tiramiseb,
La commande mysqldump est beaucoup plus rapide même si d'après les tutos que j'ai vu, l'utilisation de mysql (qui n'a pas fonctionné chez moi) est également possible (voir lien ci après : http://www.commentcamarche.net/contents … ous-mysql).

Mais donc si j'ai bien compris, je n'ai pas besoin d'utiliser ensuite

mysql -u monlogin -p mabase < bdd.sql

Je mets le sujet en résolu, pourrais-tu me confirmer tout de même (ça pourrait aider d'autres gens) :
1- En faisant

 $ mysqldump -u monlogin -p mabase > bdd.sql

, j'ai donc copier la bdd que j'avais dans phpmyadmin vers un autre endroit (sur mon bureau par exemple). J'ai donc une copie de ma bdd sur mon bureau
2- Donc l'étape avec

$ mysql -u monlogin -p mabase < bdd.sql 

n'est plus nécessaire.
=>Elle sert par exemple, si je veux l'importer dans phpmyadmin en créant la même base avec un autre nom ou l'importer autre part (serveur d'un hébergeur par exemple).

Si c'est bien cela, c'est en fait la notion d'import/export (:)) qui est floue...parce que tout dépend du point de vue dans lequel on se met mais je pense avoir compris ce que me disait tout le monde depuis le début. En fait pour moi au début quand j'étais en ligne de commande et que je voulais copier ma bdd de phpmyadmin vers mon bureau, c'était de l'importation alors que de ce que je comprends c'était de l'exportation (c'est parce que je me mettais en position de "recevoir" une copie d'où les incompréhensions).

Merci encore +++

Dernière modification par gringo75 (Le 26/01/2015, à 00:24)

Hors ligne

#16 Le 26/01/2015, à 00:47

Rufus T. Firefly

Re : [Résolu] Problème import de base de données mysql en ligne de commande

Salut,

Je crois que tu ferais bien de lire un peu ceci (par exemple) : http://trac.evolix.net/infogerance/wiki/HowtoMySQL


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#17 Le 26/01/2015, à 09:49

tiramiseb

Re : [Résolu] Problème import de base de données mysql en ligne de commande

[...] c'était de l'importation alors que de ce que je comprends c'était de l'exportation

Oui, en effet si on se place du "mauvais" côté on a du mal à comprendre smile
Dans tous les cas de figure, quel que soit le logiciel, le vocabulaire évoque le point de vue du logiciel ! Pour les prochaines fois ça sera clair, au moins wink


Je pense qu'il serait aussi utile pour toi de comprendre la signification de ">" et de "<" :
- ">" veut dire "on met la sortie de la commande à gauche dans le fichier nommé à droite
- "<" veut dire "on met le contenu du fichier nommé à droite en entrée de la commande à gauche

C'est à imaginer comme des flèches qui vont vers un fichier ou qui viennent du fichier.

Hors ligne