Kiedy próbowałem uruchomić następujące polecenie na MySQL z poziomu terminala:
mysql -u $user -p$password -e "statement"
Wykonanie działa zgodnie z oczekiwaniami, ale zawsze wyświetla ostrzeżenie:
Ostrzeżenie: użycie hasła w interfejsie wiersza poleceń może być niepewne.
Jednak muszę przeprowadzić powyższą instrukcję, używając zmiennej środowiskowej ( $password
), która przechowuje moje hasło, ponieważ chcę uruchomić polecenie iteracyjnie w skrypcie bash z poziomu terminala i zdecydowanie nie podoba mi się pomysł oczekiwania na wyświetlenie monitu i zmuszając mnie do wpisania mojego hasła 50 lub 100 razy w jednym skrypcie. Oto moje pytanie:
Czy można znieść ostrzeżenie? Polecenie działa poprawnie, jak już powiedziałem, ale okno staje się dość niechlujne, gdy zapętlę się i uruchomię polecenie 50 lub 100 razy.
Czy powinienem zastosować się do ostrzeżenia i NIE zapisywać hasła w skrypcie? Jeśli tak jest, to czy muszę wpisywać hasło za każdym razem, gdy monit mnie do tego zmusza?
Bieganie man mysql
nie pomaga, mówiąc tylko
--show-warnings
Powoduje wyświetlanie ostrzeżeń po każdym stwierdzeniu, jeśli takie istnieją. Ta opcja dotyczy trybu interaktywnego i wsadowego.
i nie wspomina nic o tym, jak wyłączyć tę funkcję, jeśli czegoś mi nie brakuje.
Jestem na OS X 10.9.1 Mavericks i używam MySQL 5.6 z homebrew.
pexcept
. Może wykonywać wstawiania zacisków, a także obsługiwać informacje zwrotne przekazywane przez polecenie. W ten sposób możesz po prostu pominąć pełne dane wyjściowe i usunąć
[client]
password=my_password
w~/.my.cnf
). Z pewnością ma to również wpływ na bezpieczeństwo, ale przynajmniej nie jest dostępny dla każdego, kto może uruchomićps
, a ty masz kontrolę nad nim dzięki uprawnieniom do plików.