it-swarm-eu.dev

Wie importiere ich eine SQL-Datei über die Befehlszeile in MySQL?

Ich habe eine .sql-Datei mit einem Export von phpMyAdmin. Ich möchte es über die Befehlszeile in einen anderen Server importieren.

Ich habe eine Windows Server 2008 R2-Installation. Ich habe die .sql-Datei auf dem Laufwerk C abgelegt und diesen Befehl ausprobiert

database_name < file.sql

Es funktioniert nicht, ich bekomme Syntaxfehler.

  • Wie kann ich diese Datei problemlos importieren?
  • Muss ich zuerst eine Datenbank erstellen?
1511
Jaylen

Versuchen:

mysql -u username -p database_name < file.sql

Überprüfen Sie MySQL-Optionen .

Note-1: Es ist besser, den vollständigen Pfad der SQL-Datei file.sql zu verwenden.

Note-2: Verwenden Sie -R und --triggers, um die Routinen und Trigger der Originaldatenbank beizubehalten. Sie werden standardmäßig nicht kopiert.

Note-3 Möglicherweise müssen Sie die (leere) Datenbank aus mysql erstellen, wenn sie noch nicht vorhanden ist und die exportierte SQL-Datei nicht CREATE DATABASE (exportiert mit der Option --no-create-db oder -n) enthält, bevor Sie sie importieren können.

2955
bansi

mysqldump wird häufig zur Sicherung einer gesamten Datenbank verwendet:

Shell> mysqldump db_name > backup-file.sql

Sie können die Dump-Datei folgendermaßen auf den Server laden:

UNIX

Shell> mysql db_name < backup-file.sql

Dasselbe in der Eingabeaufforderung von Windows:

mysql -p -u [user] [database] < backup-file.sql

Power Shell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

MySQL-Befehlszeile

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

In Bezug auf die Zeit, die für das Importieren großer Dateien benötigt wird: Vor allem dauert es mehr Zeit, da die Standardeinstellung von MySQL autocommit = true ist. Sie müssen dies vor dem Importieren der Datei deaktivieren und dann prüfen, wie der Import wie ein Edelstein funktioniert.

Sie müssen nur folgendes tun:

mysql> use db_name;

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

Unter allen Antworten für das oben genannte Problem ist dies die beste:

 mysql> use db_name;
 mysql> source file_name.sql;
92
Manoj Kumar

Wir können diesen Befehl verwenden, um SQL von der Befehlszeile zu importieren:

mysql -u username -p password db_name < file.sql

Wenn der Benutzername beispielsweise root ist und das Kennwort password ist. Und Sie haben einen Datenbanknamen als bank und die SQL-Datei ist bank.sql. Dann mach einfach so:

mysql -u root -p password bank < bank.sql

Denken Sie daran, wo sich Ihre SQL-Datei befindet. Wenn sich Ihre SQL-Datei im Ordner Desktop befindet, wechseln Sie in das Desktop-Verzeichnis und geben Sie den Befehl folgendermaßen ein:

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

Und wenn Sie sich im Verzeichnis Project befinden und sich Ihre SQL-Datei im Verzeichnis Desktop befindet. Wenn Sie über das Verzeichnis Project darauf zugreifen möchten, können Sie Folgendes tun:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
60
Amrit Dhungana
  1. Öffnen Sie die MySQL-Befehlszeile
  2. Geben Sie den Pfad Ihres mysql bin-Verzeichnisses ein und drücken Sie Enter
  3. Fügen Sie Ihre SQL-Datei in den Ordner bin von mysql server ein.
  4. Erstellen Sie eine Datenbank in MySQL.
  5. Verwenden Sie die Datenbank, in die Sie die SQL-Datei importieren möchten.
  6. Geben Sie source databasefilename.sql und ein Enter
  7. Ihre SQL-Datei wurde erfolgreich hochgeladen.
57
user4412947

Wenn Sie bereits über die Datenbank verfügen, importieren Sie die Datei dump oder sql folgendermaßen:

mysql -u username -p database_name < file.sql

wenn Sie nicht die entsprechende (leere) Datenbank in MySQL erstellen müssen, melden Sie sich zuerst bei der Konsole MySQL an, indem Sie den folgenden Befehl in terminal oder in cmd ausführen

mysql -u userName -p;

und wenn Sie dazu aufgefordert werden, geben Sie das Passwort ein.

Erstellen Sie anschließend eine Datenbank und verwenden Sie sie

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Importieren Sie anschließend die sql- oder die dump-Datei in die Datenbank von

mysql> source pathToYourSQLFile;

Hinweis: Wenn sich Ihr Terminal nicht an dem Speicherort befindet, an dem sich die Datei dump oder sql befindet, verwenden Sie den relativen Pfad oben.

44

Eine Lösung, die für mich funktioniert hat, ist unten:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
40
Shiks

Wechseln Sie in das Verzeichnis, in dem sich die ausführbare MySQL-Datei befindet. -u für Benutzername und -p zur Eingabe des Passworts:

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
32
Tanmay Patel

Verwenden Sie zum Importieren einer einzelnen Datenbank den folgenden Befehl.

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

Verwenden Sie den folgenden Befehl, um mehrere Datenbankdumps zu importieren.

mysql -u username -p password < dump.sql
24
Leopathu

Ich finde es erwähnenswert, dass Sie auch eine gzipped (komprimierte) -Datei mit zcat laden können, wie unten gezeigt:

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

Verwenden Sie den folgenden Befehl, um eine Datenbank in eine SQL-Datei zu sichern

mysqldump -u username -p database_name > database_name.sql

So importieren Sie eine SQL-Datei in eine Datenbank (stellen Sie sicher, dass Sie sich im selben Verzeichnis wie die SQL-Datei befinden oder den vollständigen Pfad zur Datei angeben)

mysql -u username -p database_name < database_name.sql
23
Adeleke Akinade
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
15
user3546602

Der einfachste Weg, um in Ihr Schema zu importieren:

Melden Sie sich bei MySQL an und geben Sie die unten genannten Befehle ein. 

mysql> use your_db_name;

mysql> source /opt/file.sql;
15
Ammad

Verwenden Sie Folgendes, um mehrere SQL-Dateien gleichzeitig zu importieren:

# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done

Für den einfachen Import:

# Unix-based solution
mysql -u root -pPassword DataBase < data.sql

Für WAMP :

#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql

Für XAMPP:

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
13

Sie müssen den Namen der Datenbank nicht in der Befehlszeile angeben, wenn die .sql-Datei CREATE DATABASE IF NOT EXISTS db_name- und USE db_name-Anweisungen enthält.

Stellen Sie einfach sicher, dass Sie eine Verbindung mit einem Benutzer herstellen, der über die Berechtigungen zum Erstellen der Datenbank verfügt, wenn die in der .sql-Datei angegebene Datenbank nicht vorhanden ist.

12
Reuben

Importieren Sie eine Datenbank

  1. Fahren fahren:

    command: d:
    
  2. MySQL-Login

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Es wird nach Pwd fragen. Geben Sie es ein:

    pwd
    
  4. Wählen Sie die Datenbank aus

    use DbName;
    
  5. Geben Sie den Dateinamen an

    \.DbName.sql
    
11

Fügen Sie die Option --force hinzu :

mysql -u username -p database_name --force < file.sql
9
ktaria

Wechseln Sie in das Verzeichnis, in dem Sie MySQL haben.

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

Um auch alle Datenbanken zu sichern, verwenden Sie die -all-databases-Option.

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

Oder Sie können dazu einige GUI-Clients wie SQLyog verwenden.

8
Sathish D

Der folgende Befehl funktioniert für mich von der Befehlszeile (cmd) an Windows 7 unter WAMP .

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
7
victor

Ich dachte, es könnte für diejenigen nützlich sein, die Mac OS X verwenden:

/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

Ersetzen Sie xampp durch mamp oder andere Webserver.

7
Giri

Während die meisten Antworten hier nur den einfachen Befehl erwähnen

mysql -u Datenbankbenutzer -p [Datenbankname] <Datenbankdatei.sql

heutzutage ist es üblich, dass Datenbanken und Tabellen eine utf8-Kollatierung haben, bei der dieser Befehl nicht ausreicht.

mysql -u Datenbankbenutzer -p --default-character-set = utf8 [Datenbankname] <Datenbankdatei.sql

Surley funktioniert auch für andere Zeichensätze. Wie man die richtige Schreibweise zeigt, kann man hier sehen:

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

Ein Kommentar erwähnte auch, dass, wenn eine Datenbank niemals existiert, zuerst eine leere Datenbank erstellt werden musste. Dies kann in einigen Fällen richtig sein, hängt jedoch von der Exportdatei ab. Wenn die exportierte Datei bereits den Befehl zum Erstellen der Datenbank enthält, muss die Datenbank niemals in einem separaten Schritt erstellt werden. Dies kann sogar einen Fehler beim Import verursachen. Beim Import ist es daher ratsam, zuerst in der Datei nachzuschauen, welche Befehle dort enthalten sind, und beim Export ist es ratsam, die Einstellungen zu beachten, insbesondere wenn die Datei sehr groß und schwer lesbar in einem Editor ist.

Es gibt noch weitere Parameter für den Befehl, die hier aufgelistet und erklärt werden:

https://dev.mysql.com/doc/refman/5.7/de/mysql-command-options.html

Wenn Sie eine andere Datenbankversion verwenden, sollten Sie auch nach der entsprechenden Version des Handbuchs suchen. Die genannten Links beziehen sich auf MySQL-Version 5.7.

6
David
mysql -u root -p password -D database_name << import.sql

Verwenden Sie die mysql-Hilfe für Details mysql --help

Ich denke, dass dies in unserem Kontext nützliche Optionen sein werden

[~]$ 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.

was macht Spaß, wenn wir eine große Datenbank importieren und keinen Fortschrittsbalken haben. Verwenden Sie Pipe Viewer und sehen Sie die Datenübertragung durch die Pipe

Für Mac brew install pv. Für Debian/Ubuntu apt-get install pv. Weitere Informationen finden Sie unter 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
6
Siva Praveen

Manchmal ist auch der definierte Port sowie der Server IP-Adresse dieser Datenbank von Bedeutung ...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
5
JohnSharath

Ich stieß immer wieder auf das Problem, bei dem die Datenbank nicht erstellt wurde.

Ich habe es so behoben

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
5

Erstellen Sie zu Sicherungszwecken eine BAT-Datei, und führen Sie diese BAT-Datei mit Task Scheduler aus. Es wird eine Sicherung der Datenbank benötigt. Kopieren Sie einfach die folgende Zeile, fügen Sie sie in Notepad ein, speichern Sie die .bat-Datei und führen Sie sie auf Ihrem System aus.

@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
5
user3728517

Ähnlich wie https://stackoverflow.com/a/17666285/1888983
Hauptunterschiede für mich:

  1. Die Datenbank muss zuerst existieren
  2. Kein Leerzeichen zwischen -p und dem Passwort

Shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql

Fedora 26 mit MariaDB laufen lassen.

4
jozxyqk

Zur Information hatte ich nur das Standardwurzel + ohne Passwort, es funktionierte nicht mit allen obigen Antworten. 

  • Ich habe einen neuen Benutzer mit allen Berechtigungen und einem Kennwort erstellt. Es klappt. 

  • -password OHNE RAUM. 

4
Paul Leclerc

Ich verwende Windows 10 mit Powershell 5 und fand, dass fast alle "Unix-ähnlichen" Lösungen für mich nicht funktionieren.

> 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

Am Ende benutze ich diesen Befehl.

> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]

und es funktioniert perfekt, hoffentlich hilft es.

Danke an @ Francesco Casula s Antwort btw.

4
Fery Wardiyanto

Die folgenden Schritte helfen, file.sql in die MySQL-Datenbank hochzuladen.

Schritt 1: Laden Sie file.sql.Zip in ein beliebiges Verzeichnis hoch und entpacken Sie dort 
Hinweis : Sudo apt-get install unzip: Sudo apt-get unzip file.sql.Zip
Schritt 2: Navigieren Sie nun zu diesem Verzeichnis. Beispiel: cd /var/www/html

Schritt 3: mysql -u username -p database-name < file.sql
Geben Sie das Passwort ein und warten Sie, bis der Upload abgeschlossen ist.

4
Ramesh Sinha

Die Angabe von Anmeldeinformationen in der Befehlszeile ist keine gute Idee. Die obigen Antworten sind großartig, vernachlässigen jedoch nicht die Erwähnung

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

Dabei ist etc/myhost.cnf eine Datei, die Host, Benutzer und Kennwort enthält und Sie vermeiden, das Kennwort in der Befehlszeile anzuzeigen. Hier ist ein Beispiel,

[client]
Host=hostname.domainname
user=dbusername
password=dbpassword
3
ChuckCottrill

Import in Datenbank: -

mysql -u Benutzername -p Datenbankname </ Dateipfad/Dateiname.sql

Aus Datenbank exportieren: -

mysqldump -u Benutzername -p Datenbankname>/Dateipfad/Dateiname.sql

nach diesen Befehlen fragt Prompt nach Ihrem MySQL-Passwort

3
NeeruSingh

Wenn Sie Daten in einen Docker-Container importieren, verwenden Sie den folgenden Befehl. Passen Sie Benutzer (-u), Datenbank (-D), Port (-P) und Host (-h) an Ihre Konfiguration an.

mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
2
Hamfri

Wenn Sie MAMP unter Mac OS X verwenden, kann dies hilfreich sein:

/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql

MYSQL_USER ist standardmäßig root.

1
HowardDuck

Bestimmte Datenbanken exportieren:

 djimi:> mysqldump --user=root --Host=localhost --port=3306 --password=test -B CCR KIT > ccr_kit_local.sql

Dadurch werden CCR- und KIT-Datenbanken exportiert ...

Importieren Sie alle exportierten Datenbanken in eine bestimmte MySQL-Instanz (Sie müssen sich dort befinden, wo sich Ihre Dump-Datei befindet):

  djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
1
Musa

In Ubunt

 mysql -u root -p
 CREATE database dbname;
 use dbname;
 source /home/computername/Downloads/merchantapp.sql
 exit;

In Windows

Laden Sie die SQL-Datei herunter und speichern Sie sie in C:\xampp\mysql\bin.

Öffnen Sie danach die Eingabeaufforderung mit C:\xampp\mysql\bin:

 C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql
1
Shabeer Sha

Datenbank über Terminal importieren

Navigieren Sie zu dem Ordner, in dem sich die SQL-Datei befindet

den Befehl run below

mysql -u database_user_name -p database_name < sql_file_name.sql

Es wird nach einem Passwort gefragt. Geben Sie das Datenbankkennwort ein. Es dauert einige Sekunden, um Daten in die Datenbank zu importieren.

1
Dev Semicolon

Zum Beispiel

Ich habe die Software unter C:\xampp\mysql\bin Installiert und meine Datei befindet sich an der Adresse C:\Users\file.sql.

Setzen Sie einfach username und database_name

Hinweis: Zuerst müssen Sie die Datenbank (database_name) manuell erstellen

Führen Sie diesen Befehl aus:

cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql

Und dann Passwort eingeben ???? 

1

Wenn Ihr Ordner mehrere SQL-Dateien enthält und Sie Git Bash installiert haben, können Sie diesen Befehl zum Importieren mehrerer Dateien verwenden:

cd /my-project/data

cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
1

Unter Windows können Sie den folgenden Befehl verwenden, um Daten aus dem SQL-Speicherauszug zu importieren

C:\Programme\MySQL\MySQL Server 5.7\bin> mysql -u <> -p <> DBName <Speicherort\query.sql

dabei wird -u gefolgt von Benutzername und -p gefolgt von Mysql-Kennwort verwendet. Das Passwort kann im Befehl übersprungen werden, da es bei der Eingabeaufforderung eingegeben werden kann.

1
Ripudaman Singh

Sie können diese Abfrage ausprobieren.

Exportieren: Mysqldump -u Benutzername –-Passwort = Ihr_Kennwort Datenbankname> Datei.sql

Importieren: Mysql -u Benutzername –-Kennwort = Ihr_Kennwort Datenbankname <Datei.sql

und Details unter diesem Link:

https://chartio.com/resources/tutorials/importing-from-and-exporting-nach-filesusing-the-mysql-command-line/

1

1) Gehen Sie in Ihr Wamp- oder XAMPP-Verzeichnis. Beispiel

cd d: /wamp/bin/mysql/mysql5.7.24/bin

2) mysql -u root -p DATABASENAME <PATHYOUDATABASE_FILE

0
Naveen dev

Wenn Sie in Ihren lokalen Datenbankserver importieren, haben Sie folgende Möglichkeiten:

mysql -u database_user -p < database_file.sql

Für den entfernten Datenbankserver gehen Sie wie folgt vor:

mysql -u database_user -p -h remote_server_url < database_file.sql
0

Versuche dies:-

C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
0
Amarat

Sie können verwenden:

mysql -u<user> -p<pass> <db> < db.sql

beispiel:

mysql -uroot -proot db < db.sql

tschüss!