J'ai un fichier .sql
avec une exportation de phpMyAdmin
. Je veux l'importer sur un autre serveur en utilisant la ligne de commande.
J'ai un Windows Server 2008 R2 installation. J'ai placé le fichier .sql
sur le lecteur C, et j'ai essayé cette commande
database_name < file.sql
Cela ne fonctionne pas, je reçois des erreurs de syntaxe.
Essayer:
mysql -u username -p database_name < file.sql
Vérifiez Options MySQL .
Note-1: Il est préférable d'utiliser le chemin complet du fichier SQL file.sql
.
Note-2: Utilisez -R
et --triggers
pour conserver les routines et les déclencheurs de la base de données d'origine. Ils ne sont pas copiés par défaut.
Note-3 Vous devrez peut-être créer la base de données (vide) à partir de mysql si elle n'existe pas déjà et si le SQL exporté ne contient pas CREATE DATABASE
(exporté avec l'option --no-create-db
ou -n
) avant de pouvoir l'importer.
Une utilisation courante de mysqldump est destinée à la sauvegarde d'une base de données complète:
Shell> mysqldump db_name > backup-file.sql
Vous pouvez recharger le fichier de vidage sur le serveur comme suit:
UNIX
Shell> mysql db_name < backup-file.sql
Idem dans l'invite de commande Windows:
mysql -p -u [user] [database] < backup-file.sql
PowerShell
C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"
MySQL en ligne de commande
mysql> use db_name;
mysql> source backup-file.sql;
En ce qui concerne le temps nécessaire pour importer des fichiers volumineux: plus important encore, cela prend plus de temps car MySQL est configuré par défaut sur autocommit = true
Vous devez désactiver cette option avant d'importer votre fichier, puis vérifier comment l'importation fonctionne comme une gemme.
Vous devez juste faire ce qui suit:
mysql> use db_name;
mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
Parmi toutes les réponses, pour le problème ci-dessus, c'est la meilleure:
mysql> use db_name;
mysql> source file_name.sql;
Nous pouvons utiliser cette commande pour importer du code SQL à partir de la ligne de commande:
mysql -u username -p password db_name < file.sql
Par exemple, si le nom d'utilisateur est root
et le mot de passe password
. Et vous avez un nom de base de données comme bank
et le fichier SQL est bank.sql
. Ensuite, faites simplement comme ceci:
mysql -u root -p password bank < bank.sql
Rappelez-vous où se trouve votre fichier SQL. Si votre fichier SQL se trouve dans le répertoire/répertoire Desktop
, accédez au répertoire du bureau et entrez la commande comme ceci:
~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql
Et si vous êtes dans le répertoire Project
et que votre fichier SQL est dans le répertoire Desktop
. Si vous voulez y accéder à partir du répertoire Project
, procédez comme suit:
~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
bin
du serveur mysql.source databasefilename.sql
et EnterSi vous avez déjà la base de données, utilisez ce qui suit pour importer le fichier dump
ou sql
mysql -u username -p database_name < file.sql
si vous n'avez pas besoin de créer la base de données pertinente (vide) dans MySQL, pour cette première connexion, connectez-vous à la console MySQL
en exécutant la commande suivante dans terminal ou dans cmd
mysql -u userName -p;
et lorsque vous y êtes invité, indiquez le mot de passe.
Ensuite, créez une base de données et utilisez-la
mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;
Importez ensuite le fichier sql
ou dump
dans la base de données à partir de
mysql> source pathToYourSQLFile;
Remarque: si votre terminal n'est pas à l'emplacement où se trouve le fichier dump
ou sql
, utilisez le chemin relatif indiqué ci-dessus.
Une solution qui a fonctionné pour moi est la suivante:
Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
Allez dans le répertoire où vous avez l'exécutable MySQL. -u
pour le nom d'utilisateur et -p
pour demander le mot de passe:
C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
Pour importer une base de données unique, utilisez la commande suivante.
mysql -u username -p password dbname < dump.sql
Pour importer plusieurs vidages de base de données, utilisez la commande suivante.
mysql -u username -p password < dump.sql
Je pense qu'il vaut la peine de mentionner que vous pouvez également charger un fichier gzipped (compressé) avec zcat
comme ci-dessous:
zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
Pour vider une base de données dans un fichier SQL, utilisez la commande suivante
mysqldump -u username -p database_name > database_name.sql
Pour importer un fichier SQL dans une base de données (assurez-vous de vous trouver dans le même répertoire que le fichier SQL ou indiquez le chemin complet du fichier)
mysql -u username -p database_name < database_name.sql
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
Le moyen le plus facile d'importer dans votre schéma:
Connectez-vous à mysql et émettez les commandes mentionnées ci-dessous
mysql> use your_db_name;
mysql> source /opt/file.sql;
Pour importer plusieurs fichiers SQL à la fois, utilisez ceci:
# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done
Pour une importation simple:
# Unix-based solution
mysql -u root -pPassword DataBase < data.sql
Pour WAMP :
#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql
Pour XAMPP:
C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
Vous n'avez pas besoin de spécifier le nom de la base de données sur la ligne de commande si le fichier .sql contient les instructions CREATE DATABASE IF NOT EXISTS db_name
et USE db_name
.
Assurez-vous simplement que vous vous connectez avec un utilisateur disposant des autorisations pour créer la base de données, si la base de données mentionnée dans le fichier .sql n'existe pas.
Allez conduire:
command: d:
Connexion MySQL
command: c:\xampp\mysql\bin\mysql -u root -p
Il demandera pwd. Entrez le:
pwd
Sélectionnez la base de données
use DbName;
Fournir le nom du fichier
\.DbName.sql
Ajoutez l'option --force
:
mysql -u username -p database_name --force < file.sql
Allez dans le répertoire où vous avez MySQL.
c:\mysql\bin\> mysql -u username -p password database_name <
filename.sql
Également pour vider toutes les bases de données, utilisez l’option -all-databases
et aucun nom de base de données n’a plus besoin d’être spécifié.
mysqldump -u username -ppassword –all-databases > dump.sql
Pour ce faire, vous pouvez également utiliser des clients à interface graphique tels que SQLyog.
La commande suivante fonctionne pour moi à partir de la ligne de commande (cmd) sous Windows 7 sous WAMP .
d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
Je pensais que cela pourrait être utile pour ceux qui utilisent Mac OS X :
/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql
Remplacez xampp
par mamp
ou d’autres serveurs Web.
Alors que la plupart des réponses ici ne font que mentionner la commande simple
mysql -u utilisateur_bdd -p [nom_bdd] <fichier_bdd.sql
aujourd'hui, il est assez courant que les bases de données et les tables utilisent utf8-collation lorsque cette commande n'est pas suffisante .Avec utf8-collation dans les tables exportées, il est nécessaire d'utiliser cette commande:
mysql -u utilisateur_base_de_donnees -p --default-character-set = utf8 [nom_bdd] <fichier_base.sql
Surley, cela fonctionne aussi pour d’autres jeux de caractères, voici comment afficher la bonne notation:
Un commentaire a également mentionné que si une base de données n'existe jamais, une base de données vide doit d'abord être créée. Cela peut être correct dans certains cas, mais dépend du fichier d'exportation. Si le fichier exporté inclut déjà la commande permettant de créer la base de données, celle-ci ne doit jamais être créée séparément, ce qui peut entraîner une erreur lors de l'importation. Donc, lors de l’importation, il est conseillé d’examiner d’abord dans le fichier pour savoir quelles commandes y sont incluses. Lors de l’exportation, notez les paramètres, en particulier si le fichier est très volumineux et difficile à lire dans un éditeur.
Il y a encore plus de paramètres pour la commande qui sont listés et expliqués ici:
https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html
Si vous utilisez une autre version de la base de données, envisagez également de rechercher la version correspondante du manuel. Les liens mentionnés font référence à MySQL version 5.7.
mysql -u root -p password -D database_name << import.sql
Utilisez l'aide de mysql pour plus de détails mysql --help
Je pense que ce seront des options utiles dans notre contexte
[~]$ mysql --help
mysql Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Usage: mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?
--bind-address=name IP address to bind to.
-D, --database=name Database to use.
--delimiter=name Delimiter to be used.
--default-character-set=name Set the default character set.
-f, --force Continue even if we get an SQL error.
-p, --password[=name] Password to use when connecting to server.
-h, --Host=name Connect to Host.
-P, --port=# Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
--protocol=name The protocol to use for connection (tcp, socket, pipe,
-s, --silent Be more silent. Print results with a tab as separator, each row on new line.
-v, --verbose Write more. (-v -v -v gives the table output format).
-V, --version Output version information and exit.
-w, --wait Wait and retry if connection is down.
ce qui est amusant, si nous importons une base de données volumineuse et n’avons pas de barre de progression. Utilisez Pipe Viewer et voyez le transfert de données à travers le tuyau
Pour Mac, brew install pv
. Pour Debian/Ubuntu, apt-get install pv
. Autres, voir http://www.ivarch.com/programs/pv.shtml
pv import.sql | mysql -u root -p password -D database_name
1.45GiB 1:50:07 [339.0KiB/s] [=============> ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s] [=============> ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s] [=============> ] 14% ETA 11:05:36
Parfois, le port défini ainsi que le serveur adresse IP de cette base de données comptent également ...
mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql
J'ai continué à courir dans le problème où la base de données n'a pas été créée.
Je l'ai réparé comme ça
mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
À des fins de sauvegarde, créez un fichier BAT et exécutez-le à l'aide de Task Scheduler . Il faudra une sauvegarde de la base de données; copiez simplement la ligne suivante et collez-le dans Notepad , puis enregistrez le fichier .bat et exécutez-le sur votre système.
@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i
"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql
De même pour https://stackoverflow.com/a/17666285/1888983
Différences clés pour moi:
-p
et le mot de passeShell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql
Lancer Fedora 26 avec MariaDB.
Pour information, je viens d'avoir la racine par défaut + sans mot de passe, cela ne fonctionne pas avec toutes les réponses ci-dessus.
J'ai créé un nouvel utilisateur avec tous les privilèges et un mot de passe. Ça marche.
-password SANS ESPACE.
J'utilise Windows 10 avec Powershell 5 et j'ai trouvé la quasi-totalité des solutions de type "unix" qui ne fonctionnaient pas pour moi.
> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+ ~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
Je finis par utiliser cette commande.
> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]
et cela fonctionne parfaitement, j'espère que cela aide.
Merci à @ Francesco Casula 's answer btw.
Les étapes suivantes aident à télécharger file.sql
dans la base de données MySQL.
Étape 1: Téléchargez file.sql.Zip
dans un répertoire et décompressez-le
Remarque : Sudo apt-get install unzip
: Sudo apt-get unzip file.sql.Zip
Étape 2: Naviguez maintenant vers ce répertoire. Exemple: cd /var/www/html
Étape 3: mysql -u username -p database-name < file.sql
Entrez le mot de passe et attendez que le téléchargement soit terminé.
Fournir des informations d'identification sur la ligne de commande n'est pas une bonne idée. Les réponses ci-dessus sont excellentes, mais négligent de mentionner
mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql
Où etc/myhost.cnf est un fichier contenant l'hôte, l'utilisateur, le mot de passe et vous évitez d'exposer le mot de passe sur la ligne de commande Voici un échantillon,
[client]
Host=hostname.domainname
user=dbusername
password=dbpassword
Importer dans la base de données: -
mysql -u nom d'utilisateur -p nom_base_données </ chemin_fichier/nom_fichier.sql
Exporter de la base de données: -
mysqldump -u nom d'utilisateur -p nom_base_données>/chemin du fichier/nom_fichier.sql
après ces commandes, Invite vous demandera votre mot de passe mysql
Si vous importez des données dans un conteneur de menu fixe, utilisez la commande suivante. Ajustez l'utilisateur (-u), la base de données (-D), le port (-P) et l'hôte (-h) en fonction de votre configuration.
mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
Si vous utilisez MAMP sur Mac OS X, cela peut être utile:
/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql
MYSQL_USER est root par défaut.
Exporter des bases de données particulières:
djimi:> mysqldump --user=root --Host=localhost --port=3306 --password=test -B CCR KIT > ccr_kit_local.sql
Cela exportera les bases de données CCR et KIT ...
Importez toutes les bases de données exportées vers une instance MySQL particulière (vous devez être à l'emplacement de votre fichier de vidage):
djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
sous Ubunt
mysql -u root -p
CREATE database dbname;
use dbname;
source /home/computername/Downloads/merchantapp.sql
exit;
Sous Windows
Téléchargez le fichier SQL et enregistrez-le dans C:\xampp\mysql\bin
.
Après cela, ouvrez la commande Invite avec C:\xampp\mysql\bin
:
C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql
Pour importer une base de données via un terminal
Naviguez jusqu'au dossier contenant le fichier SQL
la course en dessous de la commande
mysql -u database_user_name -p database_name < sql_file_name.sql
Il vous demandera un mot de passe. entrez le mot de passe de la base de données. Il faudra quelques secondes pour importer des données dans la base de données.
Par exemple
J'ai installé le logiciel sur C:\xampp\mysql\bin
.__ et mon fichier est à l'adresse C:\Users\file.sql
Il suffit de définir username
et database_name
Remarque: Vous devez d’abord créer la base de données (database_name
) manuellement.
Exécutez cette commande:
cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql
Et puis entrez le mot de passe ????
Si votre dossier contient plusieurs fichiers SQL et que vous avez installé Git Bash vous pouvez utiliser cette commande pour importer plusieurs fichiers:
cd /my-project/data
cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
À partir de Windows, vous pouvez utiliser la commande ci-dessous pour importer des données à partir de SQL dump.
C:\Program Files\MySQL\Serveur MySQL 5.7\bin> mysql -u <> -p <> DBName <filelocation\query.sql
où -u suivi de nom d'utilisateur et -p suivi de mot de passe Mysql. Le mot de passe peut être ignoré dans la commande car il peut être saisi dans l'invite.
Vous pouvez essayer cette requête.
Exporter: Mysqldump -u nom_utilisateur –-password = votre_password nom_base_données> fichier.sql
Import: Mysql -u nom_utilisateur –-password = votre_password nom_base_données <fichier.sql
et détail suivant ce lien:
1) Allez dans votre répertoire wamp ou xampp Exemple
cd d: /wamp/bin/mysql/mysql5.7.24/bin
2) mysql -u racine -p DATABASENAME <PATHYOUDATABASE_FILE
Si vous importez sur votre serveur de base de données local, vous pouvez effectuer les opérations suivantes:
mysql -u database_user -p < database_file.sql
Pour le serveur de base de données distant, procédez comme suit:
mysql -u database_user -p -h remote_server_url < database_file.sql
Essaye ça:-
C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
Vous pouvez utiliser:
mysql -u<user> -p<pass> <db> < db.sql
exemple:
mysql -uroot -proot db < db.sql
au revoir!