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.