bash check mysql verbinden

8

Ich schreibe ein Bash-Skript, um einige Operationen gegen eine Datenbank auf meinem Debian-Squeeze-Server durchzuführen.

Ich habe festgestellt, dass wenn ich ein falsches Passwort für root eintrage, die Eingabeaufforderung geschlossen wird und ich nicht aufgefordert werde, es erneut zu versuchen ... das ist nicht sehr praktisch!

Ich habe also versucht, eine Schleife zu erstellen, die versucht, sich mit MYSQL zu verbinden und das Passwort für später zu speichern, falls erfolgreich.

Ich habe das versucht, aber es funktioniert nicht. Stattdessen erhalte ich diesen Fehler:

  

FEHLER 1045 (28000): Zugriff verweigert für Benutzer 'root' @ 'localhost' (mit Passwort: YES)

%Vor%

Ich bin nicht sehr erfahren im Bash-Scripting, jede Hilfe wäre großartig!

    
Erwan 31.08.2011, 03:24
quelle

1 Antwort

14

Ich glaube nicht, dass Sie den [[ -n backtic ... ]]; Test so verschachtelt haben müssen. Probieren Sie:

%Vor%

while wertet jede Befehlsgruppe bis zu einem schließenden ; do aus und überprüft den Rückkehrcode des letzten ausgeführten Befehls, um festzustellen, ob die Schleife ausgeführt werden soll. Da Sie nach einem Fehler suchen, müssen Sie dem Test ein logisches NOT voranstellen ( ! ) ODER Sie können das syntaktische Äquivalent verwenden, d. H.

%Vor%

was Sie sich vorstellen können, bis mysql korrekt funktioniert, versuchen Sie immer das richtige Passwort zu erhalten.

Leider habe ich keinen Zugriff auf eine mysql-Installation, daher ist dies nicht getestet.

Ich hoffe, das hilft.

    
shellter 31.08.2011, 03:45
quelle

Tags und Links