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?

17voto

mysql -uusername -ppassword database-name < file.sql

16voto

Es ist nie eine gute Praxis, das Passwort-Argument direkt von der Kommandozeile zu übergeben, es wird in der Datei ~/.bash_history Datei und kann von anderen Anwendungen aus zugänglich sein.

Verwenden Sie stattdessen dies:

mysql -u user --host host --port 9999 database_name < /scripts/script.sql -p
Enter password:

12voto

RicarHincapie Punkte 1687

Von linux 14.04 zu MySql 5.7, mit cat Befehl mit mysql-Anmeldung gepiped:

cat /Desktop/test.sql | sudo mysql -uroot -p 

Sie können diese Methode für viele MySQL-Befehle verwenden, die direkt von der Shell aus ausgeführt werden. Beispiel:

echo "USE my_db; SHOW tables;" | sudo mysql -uroot -p 

Achten Sie darauf, dass Sie Ihre Befehle mit einem Semikolon (';') trennen.

Ich habe diesen Ansatz in den obigen Antworten nicht gesehen und hielt ihn für einen guten Beitrag.

8voto

Ben Lin Punkte 609

Sehr wahrscheinlich müssen Sie nur den Schrägstrich/Schwarzschrägstrich ändern: von

 \home\sivakumar\Desktop\test.sql

zu

 /home/sivakumar/Desktop/test.sql

Der Befehl würde also lauten:

source /home/sivakumar/Desktop/test.sql

6voto

Rajesh Paul Punkte 6284

Verwenden Sie das folgende von mysql-Eingabeaufforderung -

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

Verwenden Sie keine Anführungszeichen. Auch wenn der Pfad enthält Leerzeichen(' ') verwenden. kein einziges Zitat .

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