bash check mysql verbinden
Ich Schreibe ein bash-Skript, um einige der Operationen gegen eine Datenbank auf meinem debian squeeze Server.
Habe ich bemerkt, dass wenn ich ein Falsches Passwort für root ein, wird die Eingabeaufforderung geschlossen werden und ich werde nicht gebeten, noch einmal zu versuchen... das ist nicht sehr bequem!
Also habe ich versucht eine Schleife erstellen, die versucht, die MYSQL-Verbindung und das Passwort speichern für später, wenn erfolgreich.
Ich habe versucht, aber es funktioniert nicht.
Stattdessen erhalte ich diese Fehlermeldung:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
read -s -p "Enter MYSQL root password: " mysqlRootPassword
while [[ -n `mysql -u root -p$mysqlRootPassword` ]]; do
read -p "Can't connect, please retry: " mysqlRootPassword
done
Ich bin nicht sehr erfahren in bash-scripting, jede Hilfe wäre genial!
- was ist $MYSQL?
- Haben Sie vielleicht mehr Glück auf serverfault.com obwohl dies wird als eine Frage der Programmierung..
- nicht genau, was es Verweise (gefunden im web), aber es funktioniert Prima! Ich gebe zu, das ist verwirrend, ich werde Bearbeiten meine Frage, und ersetzen Sie mit 'mysql'. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass Sie müssen die
[[ -n backtic ... ]];
test verschachtelte so. Versuchen:while
wertet alle Befehls-Gruppe bis zu einer Schließung; do
und prüft den return-code des letzten Befehls ausgeführt, um zu bestimmen, ob die Schleife ausgeführt werden soll. Denn Sie sind auf der Suche für einen Fehler, den Sie haben, um Sie vor dem test mit einem logischen NICHT (!
) ODER Sie können die syntaktische äquivalente, d.h.dem Sie denken können, als bis Sie mysql richtig funktioniert, versuchen Sie halten Sie die richtige Passwort ein.
Leider habe ich keinen Zugriff auf eine mysql-installation, so ist dies ungetestet.
Ich hoffe, das hilft.