source - mysql import dump




Comment importer un fichier SQL en utilisant la ligne de commande dans MySQL? (20)

Importer une base de données

  1. Allez conduire:

    command: d:
    
  2. Connexion MySQL

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Il va demander pwd. Entrez-le:

    pwd
    
  4. Sélectionnez la base de données

    use DbName;
    
  5. Indiquez le nom du fichier

    \.DbName.sql
    

J'ai un fichier .sql avec une exportation de phpMyAdmin . Je veux l'importer dans un serveur différent en utilisant la ligne de commande.

J'ai une installation de Windows Server 2008 R2. J'ai placé le fichier .sql sur le lecteur C , et j'ai essayé cette commande

database_name < file.sql

Cela ne fonctionne pas, j'obtiens des erreurs de syntaxe.

  • Comment puis-je importer ce fichier sans problème?
  • Ai-je besoin de créer une base de données en premier?

  1. Ouvrez la ligne de commande MySQL
  2. Tapez le chemin de votre répertoire mysql bin et appuyez sur Entrée
  3. Collez votre fichier SQL dans le dossier bin du serveur mysql.
  4. Créer une base de données dans MySQL.
  5. Utilisez cette base de données particulière dans laquelle vous souhaitez importer le fichier SQL.
  6. Tapez source databasefilename.sql et Entrée
  7. Votre téléchargement de fichier SQL avec succès.

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

Pour vider toutes les bases de données, utilisez l'option -all-databases et aucun nom de base de données n'a besoin d'être spécifié.

mysqldump -u username -ppassword –all-databases > dump.sql

Ou vous pouvez utiliser certains clients GUI comme SQLyog pour ce faire.


Alors que la plupart des réponses ici mentionnent simplement la commande simple

mysql -u database_user -p <fichier_base_de_données.sql

Aujourd'hui, il est assez courant que les bases de données et les tables aient un assemblage utf8 où cette commande n'est pas suffisante. Ayant utf8-collation dans les tables exportées, il est nécessaire d'utiliser cette commande:

mysql -u utilisateur_base_de_données -p --default-character-set = utf8 <fichier_base_de_données.sql

Surley cela fonctionne aussi pour d'autres charsets, comment montrer la bonne notation peut être vu ici:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

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 cela dépend du fichier d'exportation. Si le fichier exporté contient déjà la commande permettant de créer la base de données, la base de données ne doit jamais être créée dans une étape séparée, ce qui peut même provoquer une erreur lors de l'importation. Donc, à l'importation, il est conseillé de regarder d'abord dans le fichier pour savoir quelles commandes sont incluses, à l'exportation, il est conseillé de noter les paramètres, surtout 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 base de données, pensez également à rechercher la version correspondante du manuel. Les liens mentionnés se réfèrent à MySQL version 5.7.


En ce qui concerne le temps nécessaire à l'importation de fichiers volumineux: le plus important est que cela prend plus de temps car le paramètre par défaut de MySQL est autocommit = true . Vous devez le désactiver avant d'importer votre fichier, puis vérifier comment l'importation fonctionne comme une gemme.

Vous avez juste besoin de faire ce qui suit:

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

Fournir des informations d'identification sur la ligne de commande n'est pas une bonne idée. Les réponses ci-dessus sont bonnes, mais négligez de mentionner

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

Où etc / myhost.cnf est un fichier qui contient 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 exemple,

[client]
host=hostname.domainname
user=dbusername
password=dbpassword

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

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

Remplacer xampp avec mamp ou d'autres serveurs Web.


Je pense qu'il vaut la peine de mentionner que vous pouvez également charger un fichier gzippé (compressé) avec zcat comme indiqué ci-dessous:

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name

Nous pouvons utiliser cette commande pour importer du 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 est 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 / dossier Desktop , allez dans le 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 se trouve dans le répertoire Desktop . Si vous voulez y accéder à partir du répertoire du Project , vous pouvez faire comme ceci:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql

Parfois, le port défini ainsi que l' adresse IP du serveur de cette base de données sont également importants ...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.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 l'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

Pour importer une seule base de données, utilisez la commande suivante.

mysql -u username -p password dbname < dump.sql

Pour importer plusieurs sauvegardes de base de données, utilisez la commande suivante.

mysql -u username -p password < dump.sql

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 que vous êtes dans le même répertoire que le fichier SQL ou fournissez le chemin d'accès complet au fichier)

mysql u -username -p database_name < database_name.sql

Si vous avez déjà la base de données, utilisez la commande suivante pour importer le fichier de dump ou le fichier sql

mysql -u username -p database_name < file.sql

si vous n'avez pas besoin de créer la base de données appropriée (vide) dans MySQL, pour cette première connexion à la console MySQL en lançant la commande suivante dans terminal ou dans cmd

mysql -u userName -p;

et lorsque vous y êtes invité fournir le mot de passe.

Ensuite, créez une base de données et utilisez-la

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Ensuite, importez le fichier sql ou le fichier de dump dans la base de données à partir de

mysql> source pathToYourSQLFile;

Remarque: si votre terminal ne se trouve pas à l'emplacement où le fichier dump ou sql existe, utilisez le chemin relatif ci-dessus.


Une solution qui a fonctionné pour moi est ci-dessous:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

Une utilisation courante de mysqldump est de faire une sauvegarde d'une base de données entière:

shell> mysqldump db_name > backup-file.sql

Vous pouvez charger le fichier de vidage dans le serveur comme ceci:

UNIX

shell> mysql db_name < backup-file.sql

La même chose 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"

Ligne de commande MySQL

mysql> use db_name;
mysql> source backup-file.sql;

Importer dans la base de données: -

mysql -u nom d'utilisateur -p nom_base_de_données </ chemin du fichier / nom_fichier.sql

Exporter de la base de données: -

mysqldump -u nom d'utilisateur -p nom_base_de_données> / chemin_fichier / nom_fichier.sql

après ces commandes, l'invite vous demandera votre mot de passe mysql


mysql --user=[user] --password=[password] [database] < news_ml_all.sql






import