624 Stimmen

Wie führt man ein SQL-Skript in MySQL aus?

Ich möchte eine Textdatei, die SQL-Abfragen enthält, in MySQL ausführen.

Ich habe versucht, die source /Desktop/test.sql und erhielt die Fehlermeldung:

mysql> . \home\sivakumar\Desktop\test.sql FEHLER: Datei konnte nicht geöffnet werden ' \home\sivakumar\Desktop\test.sql ', Fehler: 2

Haben Sie eine Idee, was ich falsch mache?

674voto

Zoe Edwards Punkte 12209

Wenn Sie sich in der MySQL-Befehlszeile befinden mysql> müssen Sie die SQL-Datei als source .

mysql> source \home\user\Desktop\test.sql;

292voto

Eugen Rieck Punkte 63066

Sie haben eine ganze Reihe von Möglichkeiten:

  • verwenden Sie den MySQL-Befehlszeilen-Client: mysql -h hostname -u user database < path/to/test.sql
  • Installieren Sie die MySQL-GUI-Tools und öffnen Sie Ihre SQL-Datei, dann führen Sie sie aus
  • Verwenden Sie phpmysql, wenn die Datenbank über Ihren Webserver verfügbar ist

202voto

Paul Preibisch Punkte 3729

Können Sie mysql-Anweisungen, die in eine Textdatei geschrieben wurden, mit dem folgenden Befehl ausführen:

mysql -u yourusername -p yourpassword yourdatabase < text_file

Wenn Ihre Datenbank noch nicht erstellt wurde, loggen Sie sich zunächst mit mysql ein:

mysql -u yourusername -p yourpassword

dann:

mysql>CREATE DATABASE a_new_database_name

dann:

mysql -u yourusername -p yourpassword a_new_database_name < text_file

Das sollte genügen!

Mehr Informationen hier: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html

94voto

talsibony Punkte 7888

Meine bevorzugte Option dafür ist:

 mysql --user="username" --database="databasename" --password="yourpassword" < "filepath"

Ich verwende es auf diese Weise, denn wenn man es mit "" aneinanderreiht, vermeidet man falsche Pfade und Fehler mit Leerzeichen und - und wahrscheinlich noch mehr Probleme mit Zeichen, auf die ich nicht gestoßen bin.


Mit @elcuco Kommentar schlage ich vor, diesen Befehl mit [Leerzeichen] vor, so dass es Bash zu ignorieren, speichern es in der Geschichte, wird dies aus der Box in den meisten Bash arbeiten.

Falls der Befehl dennoch im Verlauf gespeichert wird, sehen Sie sich bitte die folgenden Lösungen an:

Befehl ausführen, ohne ihn im Verlauf zu speichern


zusätzliche Sicherheit bearbeiten

Wenn Sie besonders sicher gehen wollen, können Sie den folgenden Befehl verwenden und das Passwort in die Befehlszeileneingabe eingeben:

mysql --user="username" --database="databasename" -p < "filepath"

71voto

Bhushan Punkte 17263

Alle Top-Antworten sind gut. Aber nur für den Fall, dass jemand die Abfrage aus einer Textdatei auf einem Remote-Server ausführen möchte Y Ergebnisse in einer Datei zu speichern (anstatt sie auf der Konsole anzuzeigen), können Sie dies tun:

mysql -u yourusername -p yourpassword yourdatabase < query_file > results_file

Ich hoffe, das hilft jemandem.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X