Als ich versuchte, den folgenden Befehl unter MySQL in Terminal auszuführen:
mysql -u $user -p$password -e "statement"
Die Ausführung funktioniert wie erwartet, gibt jedoch immer eine Warnung aus:
Warnung: Die Verwendung eines Kennworts auf der Befehlszeilenschnittstelle kann unsicher sein.
Ich muss die obige Anweisung jedoch mit einer Umgebungsvariablen ( $password
) ausführen, in der mein Kennwort gespeichert ist, da ich den Befehl iterativ im Bash-Skript von Terminal aus ausführen möchte und die Idee, auf eine Eingabeaufforderung zu warten, definitiv nicht mag und zwinge mich, mein Passwort 50 oder 100 Mal in einem einzigen Skript einzugeben. Hier ist meine Frage:
Ist es möglich, die Warnung zu unterdrücken? Der Befehl funktioniert wie angegeben ordnungsgemäß, aber das Fenster wird ziemlich chaotisch, wenn ich den Befehl 50 oder 100 Mal durchlaufe und ausführe.
Sollte ich der Warnmeldung folgen und mein Passwort NICHT in mein Skript schreiben? Wenn dies der Fall ist, muss ich dann jedes Mal mein Passwort eingeben, wenn mich die Eingabeaufforderung dazu zwingt?
Laufen man mysql
hilft nicht, nur zu sagen
--show-warnings
Verursachen Sie, dass nach jeder Anweisung Warnungen angezeigt werden, falls vorhanden. Diese Option gilt für den interaktiven Modus und den Stapelmodus.
und erwähnt nichts darüber, wie man die Funktionalität ausschaltet, wenn mir etwas nicht fehlt.
Ich bin auf OS X 10.9.1 Mavericks und benutze MySQL 5.6 von Homebrew.
pexcept
. Es kann Terminal-Einfügungen durchführen und auch Rückmeldungen verarbeiten, die der Befehl gibt. Auf diese Weise können Sie einfach die ausführliche Ausgabe und den Streifen der tatsächlichen Ausgabe überspringen, die Sie möchten :)
[client]
password=my_password
in~/.my.cnf
). Sicherlich hat es auch einige Auswirkungen auf die Sicherheit, aber zumindest ist es für niemanden zugänglich , der es ausführen kannps
, und Sie haben die Kontrolle darüber mit Dateiberechtigungen.