Wie importiere ich eine .sql-Datei in MySQL?

39

Ich versuche, eine .sql-Datei mit MySQL Workbench zu importieren und erhalte den folgenden Fehler:

ERROR 1046 (3D000) at line 28: No database selected

Ich habe zuerst eine leere Datenbank mit demselben Namen wie die .sql-Datei erstellt, aber sie funktioniert nicht. Ich habe auch versucht, es mit dem MySQL-Befehls-Client zu tun:

mysqldump -u root database > file.sql 

Aber es heißt ein Fehler in meiner SQL-Syntax. Außerdem kenne ich den Pfad nicht, in dem ich die file.sql einstellen muss.

RolandoMySQLDBA
quelle
Ich konnte mysqldump mit dem folgenden Befehl importieren: mysql> use mydatabase; mysql> source sql_file.sql;
Giridharan Venugopal

Antworten:

49

Export:

mysqldump -u username –-password=your_password database_name > file.sql

Importieren:

mysql -u username –-password=your_password database_name < file.sql 
juergen d
quelle
9
Zwischen und darf kein Leerzeichen sein-ppassword
tombom 14.09.12
Was ist, wenn ich kein Passwort habe?
Überspringen Sie dann den Kennwortparameter.
Kazimieras Aliulis
Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) macht die Verwendung einer Zwischendatei überflüssig.
Pacerier
2
Die Datenbank muss in MySQL existieren, damit dies funktioniert, denke ich.
Noumenon
28

Sie können eine .sql-Datei auch als bereits verbundener Benutzer auf folgende Weise in die Datenbank importieren:

mysql> use your_database_name;

mysql> source file.sql;
tdaget
quelle
3
Quelle D: /path/file.sql; funktioniert hervorragend! Erinnern Sie sich an den Schrägstrich anstelle des Schrägstrichs.
Imdad
6

Eine andere Möglichkeit, Speicherauszugsdateien zu importieren, wenn source <filename>dies nicht funktioniert, besteht darin, Folgendes zu tun:

Kippe

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

Importieren

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql
Mike S.
quelle
5

juergen d's Antwort ist natürlich richtig; In Anbetracht Ihrer Fehlermeldung können Sie Ihre SQL-Datei jedoch auch in der Anfangszeile wie folgt ergänzen:

USE your_database_name;

Dies sollte auch den Job erledigen und Sie unter der Workbench importieren lassen.

Wenn Sie verwenden mysqldump, wird die exportierte Datei im aktuellen Ordner gespeichert. Es ist egal, auf welchem ​​Weg es ist. Nur beim Importieren von der Befehlszeile müssen Sie sich im selben Ordner befinden oder den Pfad zur Datei angeben. Dies ist jedoch nicht der Fall, wenn Sie ein visuelles Tool wie Workbench verwenden, bei dem Sie die Datei ohnehin aus dem Ordnerbaum auswählen müssen.

Gemeinschaft
quelle
2

Sie vermissen das Passwort im Befehl. Verwenden Sie folgendes.

mysql --u [username] --password=[password] [database name] < [dump file]

quelle
1

Fügen Sie unter Windows im Installationsverzeichnis des MySQL-Servers (z. B. C:\Program Files\MySQL\MySQL Server 5.5) im Abschnitt Server my.ini filedie folgende Zeile hinzu [mysqld]:

max_allowed_packet = 16M

Und speichern Sie die Änderungen. (Wenn Sie nicht speichern dürfen, kopieren Sie sie auf den Desktop und bearbeiten Sie sie erneut. Fügen Sie sie dann an derselben Stelle ein.)

Starten Sie anschließend Ihren MySQL-Server neu.

user24439
quelle