Wie kann ich eine Datenbank mit MySQL vom Terminal importieren?

373

Wie kann ich eine Datenbank mit MySQL vom Terminal importieren?

Ich kann die genaue Syntax nicht finden.

aneuryzm
quelle

Antworten:

761

Angenommen, Sie befinden sich auf einer Linux- oder Windows-Konsole:

Aufforderung zur Eingabe des Passworts:

mysql -u <username> -p <databasename> < <filename.sql>

Passwort direkt eingeben (nicht sicher):

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

Beispiel:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Siehe auch:

4.5.1.5. Ausführen von SQL-Anweisungen aus einer Textdatei


Hinweis : Wenn Sie unter Windows arbeiten, müssen Sie cd(das Verzeichnis wechseln) in Ihr MySQL / bin-Verzeichnis innerhalb der CMD wechseln, bevor Sie den Befehl ausführen.

Schwarz
quelle
139
+1, außer dass Sie Ihr Passwort nicht als CLI-Parameter übergeben sollten. Geben Sie stattdessen einfach die Option -p an und geben Sie sie nach der Eingabeaufforderung manuell ein.
St.Woland
13
Zwischen -p und dem Passwort steht kein Leerzeichen, wenn Sie es per Shell eingeben möchten.
Kethryweryn
8
mysql -u Benutzername -h Hostname -ppassword Datenbankname <Dateiname.sql für Remote-Host vom Terminal
Shaik Rilwan
8
Wenn Sie sich bereits in der mysql-Eingabeaufforderung (mysql>) befinden, geben Sie einfach source full_path_of_file ein (Hinweis: Wählen Sie die Datenbank vor dem Import mit dem Befehl USE DATABASE_NAME aus).
Ankit Sharma
3
@ Pekka 웃, Wenn wir verwenden source, können wir die Informationsmeldungen ( "betroffene Zeilen" ) und Fehlermeldungen sehen. Aber wie sehen wir die Nachrichten mit Ihrer Lösung < filename.sql?
Pacerier
141

Bevorzugter Weg für Windows:

  1. Öffnen Sie die Konsole und starten Sie den interaktiven MySQL-Modus

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>

Sri Harsha Kappala
quelle
2
warum brauchen wir nicht ein; nach Dateiname?
Nabeel Khan
6
@NabeelKhan Die meisten SQL-Anweisungen erfordern ein ;am Ende der Anweisung, es gibt jedoch einige Ausnahmen, einschließlich USEund SOURCE.
Simon East
1
Ich frage mich, ob dies schneller funktioniert als das Einleiten der Datei (wie in der akzeptierten Antwort). Mein Verdacht ist ja .
Simon East
Dies ist so viel schneller als der Import über HeidiSQL ... 3 GB in 20 Minuten!
kmdsax
Neugierig. Als ich entfernte, wurde ;der sourceBefehl erfolgreich ausgeführt. Vorher würde es nicht.
Nikos
33

mysql -u <USERNAME> -p <DB NAME> < <dump file path>

-u - für Benutzername

-p - um das Passwort einzugeben

Z.B. mysql -u root -p mydb < /home/db_backup.sql

Sie können auch ein Kennwort mit vorangestelltem -p angeben, dies ist jedoch aus Sicherheitsgründen nicht empfehlenswert. Das Passwort erscheint auf dem Befehl selbst eher maskiert.

Mukesh Singh Rathaur
quelle
2
Dies ist die Antwort, die ich suche. "<" das ist das Zeichen, das ich verlassen habe.
Pravinraj Venkatachalam
Wenn mydb nicht existiert, wie kann es dann dynamisch erstellt werden, wenn der Befehl mysqldump ausgelöst wird?
परूळेकर परूळेकर
12

Direkt von var / www / html

mysql -u username -p database_name < /path/to/file.sql

Aus MySQL heraus:

mysql> use db_name;
mysql> source backup-file.sql
Lokesh Das
quelle
7

Vom Terminal:

mysql -uroot -p --default-character-set=utf8 database_name </database_path/database.sql
Mohammad Anini
quelle
7

im Terminaltyp

mysql -uroot -p1234; use databasename; source /path/filename.sql
Patrick Mutwiri
quelle
Dies erlaubte es, das Importprotokoll zu sehen
Thiago Macedo
6

Normalerweise verwende ich diesen Befehl, um meine SQL-Daten zu laden, wenn sie in Dateien mit folgenden Namen unterteilt sind: 000-tableA.sql, 001-tableB.sql, 002-tableC.sql.

for anyvar in *.sql; do <path to your bin>/mysql -u<username> -p<password>  <database name> < $anyvar; done

Funktioniert gut auf der OSX-Shell.

Lano
quelle
5

Laden über die Befehlszeile

Erläuterung:

  1. Erstellen Sie zuerst eine Datenbank oder verwenden Sie eine vorhandene Datenbank. In meinem Fall verwende ich eine vorhandene Datenbank

  2. Laden Sie die Datenbank, indem Sie <name of database> = ClassicModelsin meinem Fall angeben und mit dem Operator <den Pfad zum angebendatabase = sakila-data.sql

  3. Durch Ausführen von Showtabellen erhalte ich die Liste der Tabellen, wie Sie sehen können.

Hinweis: In meinem Fall habe ich einen Fehler 1062 erhalten , weil ich versuche, dasselbe erneut zu laden.

user42826
quelle
5
mysql -u username -ppassword dbname < /path/file-name.sql

Beispiel

mysql -u root -proot product < /home/myPC/Downloads/tbl_product.sql

Verwenden Sie dies vom Terminal

vaibhav kulkarni
quelle
5

Der folgende Befehl funktioniert unter Ubuntu 16.04. Ich bin nicht sicher, ob er funktioniert oder nicht auf anderen Linux-Plattformen.

SQL-Datei exportieren:

$ mysqldump -u [user_name] -p [database_name] < [database_name.sql]  

Beispiel: mysqldump -u root -p max_development> max_development.sql

SQL-Datei importieren:

$ mysqldump -u [user_name] -p [database_name] > [file_name.sql]

Example: mysqldump -u root -p max_production < max_development.sql

Hinweis Die SQL-Datei sollte im selben Verzeichnis vorhanden sein

Deepak Chaube
quelle
5

Öffnen Sie dann das Terminal

 mysql -u root -p

 eg:- mysql -u shabeer -p

Danach erstellen Sie eine Datenbank

 mysql> create database "Name";

 eg:- create database INVESTOR;

Wählen Sie dann die neue Datenbank "INVESTOR" aus.

 mysql> USE INVESTOR;

Wählen Sie den Pfad der SQL-Datei vom Computer aus

 mysql> source /home/shabeer/Desktop/new_file.sql;

Drücken Sie dann die Eingabetaste und warten Sie einige Male, wenn dann alles ausgeführt wird

 mysql> exit

Geben Sie hier die Bildbeschreibung ein

Shabeer Sha
quelle
4
  1. Öffnen Sie den MySQL Command Line Client und geben Sie Ihr Passwort ein

  2. Wechseln Sie zu der Datenbank, in die Sie die SQL-Dateidaten importieren möchten. Geben Sie dazu Folgendes ein:

    USE your_database_name
  3. Suchen Sie nun die SQL-Datei, die Sie ausführen möchten.
    Wenn sich die Datei im lokalen Hauptverzeichnis des Laufwerks C: befindet und der Name der SQL-Skriptdatei lautet currentSqlTable.sql, geben Sie Folgendes ein:

    \. C:\currentSqlTable.sql

    und drücken Sie Enter, um die SQL-Skriptdatei auszuführen.

student001
quelle
7
Was ist Abbildung 1/2/3?
glglgl
4

Nachdem ich einige Zeit gekämpft hatte, fand ich die Informationen unter https://tommcfarlin.com/importing-a-large-database/

  1. Stellen Sie eine Verbindung zu MySQL her (verwenden Sie root sowohl für den Benutzernamen als auch für das Passwort):

    mysql -uroot -proot
  2. Stellen Sie eine Verbindung zur Datenbank her (sagen wir, sie heißt emptyDatabase (Sie sollten eine Bestätigungsmeldung erhalten):

    connect emptyDatabase

3 Importieren Sie den Quellcode. Nehmen wir an, die Datei heißt mySource.sql und befindet sich in einem Ordner namens mySoureDb unter dem Profil eines Benutzers namens myUser:

source /Users/myUser/mySourceDB/mySource.sql
LumasDesign
quelle
3

Wenn Sie sakila-db von der MySQL- Website verwenden, ist es auf der Linux-Plattform sehr einfach. Befolgen Sie einfach die unten aufgeführten Schritte. Nachdem Sie die Zip-Datei von sakila-db heruntergeladen haben , extrahieren Sie sie. Jetzt haben Sie zwei Dateien, eine ist sakila-schema.sql und die andere ist sakila-data.sql .


  1. Terminal öffnen
  2. Geben Sie den Befehl mysql -u root -p <sakila-schema.sql ein
  3. Geben Sie den Befehl mysql -u root -p <sakila-data.sql ein
  4. Geben Sie nun den Befehl mysql -u root -p ein und geben Sie Ihr Passwort ein. Jetzt haben Sie standardmäßig das mysql-System eingegeben .
  5. Verwenden Sie diesen Befehl, um die Sakila-Datenbank zu verwenden. Verwenden Sie sakila.
  6. Verwenden Sie den Befehl show tables , um Tabellen in sakila-db anzuzeigen

Bitte achten Sie darauf, dass extrahierte Dateien im Home-Verzeichnis vorhanden sind .

alpha9eek
quelle
2

In Ubuntu vom MySQL-Monitor haben Sie diese Syntax bereits verwendet:

mysql> use <dbname> -> Die USE-Anweisung weist MySQL an, dbnameals Standarddatenbank für nachfolgende Anweisungen zu verwenden

mysql> source <file-path>

zum Beispiel :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Wichtig : Stellen Sie sicher, dass sich die SQL-Datei in einem Verzeichnis befindet, auf das MySQL auf like / tmp zugreifen kann

Viet Hoang
quelle
1

Bevor Sie die Befehle auf dem Terminal ausführen, müssen Sie sicherstellen, dass MySQL auf Ihrem Terminal installiert ist.

Sie können den folgenden Befehl verwenden, um es zu installieren:

sudo apt-get update
sudo apt-get install mysql-server

Refrence hier .

Danach können Sie die folgenden Befehle verwenden, um eine Datenbank zu importieren:

mysql -u <username> -p <databasename> < <filename.sql>
Wolfack
quelle
1

Der einfachste Weg, eine Datenbank in Ihr MYSQL vom Terminal zu importieren, ist der unten beschriebene Prozess:

mysql -u root -p root database_name < path to your .sql file

Was ich oben mache ist:

  1. Eingabe von MySQL mit meinem Benutzernamen und Passwort (hier ist es root& root)
  2. Nach Eingabe des Passworts gebe ich den Namen der Datenbank an, in die ich meine .sql-Datei importieren möchte. Bitte stellen Sie sicher, dass die Datenbank bereits in Ihrem MYSQL vorhanden ist
  3. Dem Datenbanknamen folgt der <Pfad zu Ihrer SQL-Datei. Wenn meine Datei beispielsweise auf dem Desktop gespeichert ist, lautet der Pfad/home/Desktop/db.sql

Das ist es. Wenn Sie dies alles getan haben, drücken Sie die Eingabetaste und warten Sie, bis Ihre .sql-Datei in die entsprechende Datenbank hochgeladen wurde

Ankit Saxena
quelle
0

Zwischen -p und Passwort darf kein Leerzeichen stehen

mysql -u [dbusername] -p[dbpassword] [databasename] < /home/serverusername/public_html/restore_db/database_file.sql

Ich benutze es immer, es funktioniert perfekt. Vielen Dank, dass Sie diese Frage gestellt haben. Ich wünsche ihnen einen wunderbaren Tag. Njoy :)

Kamlesh
quelle
Wir können diese Einstellungen auch in cron job (Zeitplanaufgabe) auf gemeinsam genutzten, dedizierten und Cloud-Servern festlegen, um die Datenbank von Zeit zu Zeit automatisch zurückzusetzen oder zu importieren.
Kamlesh