Quando ho provato a eseguire il seguente comando su MySQL dal Terminale:
mysql -u $user -p$password -e "statement"
L'esecuzione funziona come previsto, ma emette sempre un avviso:
Avvertenza: l'utilizzo di una password sull'interfaccia della riga di comando può essere insicuro.
Tuttavia, devo condurre la dichiarazione sopra usando una variabile d'ambiente ( $password
) che memorizza la mia password, perché voglio eseguire il comando iterativamente nello script bash da Terminal, e sicuramente non mi piace l'idea di aspettare un prompt che appare e costringendomi a inserire la mia password 50 o 100 volte in un singolo script. Quindi, ecco la mia domanda:
È possibile sopprimere l'avvertimento? Il comando funziona correttamente come ho affermato, ma la finestra diventa piuttosto disordinata quando eseguo il ciclo ed eseguo il comando 50 o 100 volte.
Devo obbedire al messaggio di avviso e NON scrivere la mia password nel mio script? In tal caso, devo digitare la mia password ogni volta che il prompt mi costringe a farlo?
Correre man mysql
non aiuta, solo dicendo
--show-warnings
Fa sì che vengano visualizzati degli avvisi dopo ogni istruzione, se presenti. Questa opzione si applica alla modalità interattiva e batch.
e non menziona nulla su come disattivare la funzionalità, se non mi manca qualcosa.
Sono su OS X 10.9.1 Mavericks e uso MySQL 5.6 da homebrew.
pexcept
. Può eseguire inserimenti di terminali e gestire anche il feedback fornito dal comando. In questo modo puoi semplicemente saltare
[client]
password=my_password
in~/.my.cnf
). Sicuramente ha anche alcune implicazioni per la sicurezza, ma almeno non è accessibile a chiunque possa eseguirlops
e tu hai il controllo su di esso con i permessi dei file.