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




mysql source sql file (20)

Importieren Sie eine Datenbank

  1. Gehe zur Fahrt:

    command: d:
    
  2. MySQL-Anmeldung

    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 ein

    \.DbName.sql
    

https://code.i-harness.com

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 legte die .sql Datei auf dem Laufwerk C , und ich habe diesen Befehl versucht

database_name < file.sql

Es funktioniert nicht Ich bekomme Syntaxfehler.

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

  1. Öffnen Sie die MySQL-Befehlszeile
  2. Geben Sie den Pfad Ihres mysql bin-Verzeichnisses ein und drücken Sie die Eingabetaste
  3. Fügen Sie Ihre SQL-Datei in den Ordner bin des mysql-Servers ein.
  4. Erstellen Sie eine Datenbank in MySQL.
  5. Verwenden Sie diese bestimmte Datenbank, in die Sie die SQL-Datei importieren möchten.
  6. Geben Sie source databasefilename.sql und Enter ein
  7. Ihre SQL-Datei wurde erfolgreich hochgeladen.

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

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

Die Angabe von Anmeldeinformationen in der Befehlszeile ist keine gute Idee. Die obigen Antworten sind großartig, aber vernachlässigen zu erwähnen

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

Wo etc / myhost.cnf ist eine Datei, die Host, Benutzer, Passwort enthält, und Sie vermeiden, das Passwort in der Befehlszeile offen legen. Hier ist ein Beispiel,

[client]
host=hostname.domainname
user=dbusername
password=dbpassword

Eine häufige Verwendung von mysqldump ist das mysqldump einer Sicherungskopie einer gesamten Datenbank:

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

Das Gleiche in der Windows- Eingabeaufforderung:

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;

Fügen Sie die Option --force :

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

Gehen Sie zu dem Verzeichnis, in dem Sie MySQL haben.

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

Um auch alle Datenbanken -all-databases , verwenden Sie die Option -all-databases , und der Name einer Datenbank muss nicht mehr angegeben werden.

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

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


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

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

Ersetzen Sie xampp durch mamp oder andere Webserver.


Ich habe immer wieder auf das Problem hingewiesen, bei dem die Datenbank nicht erstellt wurde.

Ich habe es so gemacht

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

Ich verwende Windows 10 mit PowerShell 5 und ich fand fast alle "Unix-like" -Lösungen, die nicht für mich arbeiten.

> 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

Ich benutze diesen Befehl.

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

und es funktioniert perfekt, hoffentlich hilft es.

Danke an @ Casulas answer übrigens.


Manchmal kommt es auch auf den definierten Port sowie die Server- IP-Adresse dieser Datenbank an ...

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

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

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


Versuchen:

mysql -u username -p database_name < file.sql

Überprüfen Sie die MySQL-Optionen .

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

Hinweis-2: Verwenden Sie -R und --triggers , um die Routinen und Trigger der ursprünglichen Datenbank --triggers . Sie werden standardmäßig nicht kopiert.


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

Verwenden Sie den folgenden Befehl, um eine einzelne Datenbank zu importieren.

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

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

mysql -u username -p password < dump.sql

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

mysql -u datenbankbenutzer -p <datenbankdatei.sql

heute ist es üblich, dass Datenbanken und Tabellen utf8-Kollation haben, wo dieser Befehl nicht ausreicht. Mit utf8-Kollation in den exportierten Tabellen muss dieser Befehl verwendet werden:

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

Surley das funktioniert auch für andere Zeichensätze, wie man die richtige Notation zeigt, kann man hier sehen:

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

Ein Kommentar erwähnt auch, dass, wenn eine Datenbank nie 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 nie in einem getrennten Schritt erstellt werden, was beim Import sogar zu einem Fehler führen könnte. Beim Import ist es ratsam, zuerst in der Datei nachzusehen, welche Befehle dort enthalten sind, beim Export ist es ratsam, die Einstellungen zu beachten, besonders wenn die Datei sehr groß und in einem Editor schwer zu lesen 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/en/mysql-command-options.html

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


Wenn Sie bereits über die Datenbank verfügen, verwenden Sie Folgendes, um den sql oder die sql Datei zu importieren

mysql -u username -p database_name < file.sql

Wenn Sie nicht die relevante Datenbank (leer) in MySQL erstellen müssen, melden Sie sich zuerst an der MySQL Konsole an, indem Sie den folgenden Befehl im Terminal oder in cmd ausführen

mysql -u userName -p;

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

Als nächstes erstellen Sie eine Datenbank und verwenden Sie sie

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Importieren Sie dann die sql oder die dump Datei von der Datenbank

mysql> source pathToYourSQLFile;

Hinweis: Wenn sich Ihr Terminal nicht an dem Ort befindet, an dem der dump oder die sql Datei vorhanden ist, verwenden Sie den oben angegebenen relativen Pfad.


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

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

Zum Beispiel, wenn der Benutzername root und das Passwort Passwort ist. Und Sie haben einen Datenbanknamen als bank und die SQL-Datei ist bank.sql . Dann tu das einfach so:

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

Merken Sie sich, wo Ihre SQL-Datei ist. Wenn sich Ihre SQL-Datei im Desktop Ordner / Verzeichnis befindet, gehen Sie in das Desktop-Verzeichnis und geben Sie den folgenden Befehl ein:

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

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

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

Import in Datenbank: -

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

Aus der Datenbank exportieren: -

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

Nach diesen Befehlen fragt prompt nach Ihrem mysql Passwort


mysql --user=[user] --password=[password] [database] < news_ml_all.sql




import