Modi alternativi per scrivere queste opzioni.
Puoi scrivere
mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"
per passare stringhe vuote come argomenti separati. Il tuo commento qui sotto indica che il cliente chiederà comunque una password. Probabilmente interpreta l'argomento vuoto come nome del database e non come password. Quindi potresti provare invece quanto segue:
mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"
File .my.cnf
Ma anche se c'è un modo, ti suggerirei comunque di usare un ~/.my.cnf
file invece. Gli argomenti sulla riga di comando sono probabilmente inclusi in un elenco di processi generato da ps -A -ocmd
, in modo che altri utenti possano vederli. Il .my.cnf
il file, d'altra parte, può (e dovrebbe) essere reso leggibile solo da te (usando chmod 0600 ~/.my.cnf
), e verrà utilizzato automaticamente. Fai in modo che quel file includa le seguenti righe:
[client]
user=root
password=
Quindi un semplice mysql -e "SHOW DATABASES"
sarà sufficiente, poiché il client otterrà le sue credenziali da quel file.
Vedere 6.1.2.1. Linee guida per l'utente finale per la sicurezza delle password
per i vari modi in cui è possibile fornire una password e i rispettivi vantaggi e svantaggi. Vedere 4.2.3.3. Utilizzo dei file delle opzioni
per informazioni generali su questo .my.cnf
file