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.

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.


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>


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.


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

7

Vom Terminal:

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


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.


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.


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


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


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


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.


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

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 .


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


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>

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


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 :)


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.