shell speichern, MySQL Abfrage Ergebnis in eine Datei

Ich habe ein script, das läuft eine MySQL-Abfrage, so etwas wie dieses:

#!/bin/sh

user="root"
pwd="test"
database="mydb"
command="long... 
         long... query in
         multiple lines" 

mysql -u $user -p$pwd << EOF 
use $database;
$command
EOF

Diese Abfrage gibt ein backup von einer Tabelle zu einer anderen. Ist es möglich, speichern Sie die Abfrage-Ergebnis in eine Datei, ohne mysql zu benutzen INTO OUTFILE? Ich will nur wissen, ob die Abfrage erfolgreich war oder fehlgeschlagen ist.

Wenn es gelang, so etwas wie 1 row(s) affected oder wenn es nicht Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...

Update

Lösung 1: () als eine Kette von Befehlen, so wickeln Sie Sie in einer Variablen wird das Ergebnis dieser Befehle. Dann einfach die Ausgabe der variable in eine Datei.

output=$( mysql -u $user -p$pwd << EOF 
use $database;
$command
EOF
)
echo "$output" >> /events/mysql.log

Lösung 2: verwenden Sie den tee als system-Befehl zu senden das Ergebnis der Befehle in eine Datei, aber dies getan werden muss, um aus der crontab, wie diese:

*/1 * * * * root sh /events/mysql.sh |tee -a /events/mysql.log

http://forums.mysql.com/read.php?10,391070,391983#msg-391983

Meine funktionierende Lösung:

user="root"
pwd="root12345"
database="mydb"
command="long ...long query"

mysql -u $user -p$pwd << EOF >> /events/mysql.log 2>&1
use $database;
$command;
EOF
  • verwenden Sie einen regulären Ausdruck für, wenn affected ist auf die Ausgabe.
  • Ist diese Nachricht nicht nur die standard-Ausgabe aus der mysql Befehl? Mithilfe der done > output.log nicht für diese Arbeit?
  • ja, es ist ein stantard-Ausgabe von mysql-Befehl. Wie zu verwenden Sie in diesem Fall auch gemacht?
  • Sorry, nicht done EOF > output.log. Verwenden Sie einfach normale shell-Ausgabe-Umleitung zu fangen, die mysql Befehl. Verwenden > output.log 2>&1 zu fangen-Fehler-Ausgang auch.
InformationsquelleAutor Alpha2k | 2015-05-04
Schreibe einen Kommentar