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.
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.
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;
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 ;
Unter allen Antworten für das oben genannte Problem ist dies die beste:
mysql> use db_name;
mysql> source file_name.sql;
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
bin
von mysql server ein.source databasefilename.sql
und ein EnterWenn 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.
Eine Lösung, die für mich funktioniert hat, ist unten:
Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
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
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
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
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
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
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;
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
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.
Fahren fahren:
command: d:
MySQL-Login
command: c:\xampp\mysql\bin\mysql -u root -p
Es wird nach Pwd fragen. Geben Sie es ein:
pwd
Wählen Sie die Datenbank aus
use DbName;
Geben Sie den Dateinamen an
\.DbName.sql
Fügen Sie die Option --force
hinzu :
mysql -u username -p database_name --force < file.sql
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.
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
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.
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:
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.
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
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
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
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
Ähnlich wie https://stackoverflow.com/a/17666285/1888983
Hauptunterschiede für mich:
-p
und dem PasswortShell> 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.
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.
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.
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.
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
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
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
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.
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
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
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.
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 ????
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
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.
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:
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
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
Versuche dies:-
C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
Sie können verwenden:
mysql -u<user> -p<pass> <db> < db.sql
beispiel:
mysql -uroot -proot db < db.sql
tschüss!