Sto usando il client della riga di comando mysql e non voglio fornire la password ogni volta che avvio il client. Quali sono le mie opzioni?
Sto usando il client della riga di comando mysql e non voglio fornire la password ogni volta che avvio il client. Quali sono le mie opzioni?
Risposte:
Crea un file chiamato .my.cnfnella tua home directory che assomigli a questo. Assicurarsi che le autorizzazioni del filesystem siano impostate in modo tale che solo l'utente proprietario possa leggerlo (0600).
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
Dato che hai anche taggato la tua domanda mysqldump, dovresti guardare questa domanda.
Utilizzo di mysqldump nel processo cron senza password di root
Aggiornamento (29/06/2016) Se si esegue mysql 5.6.6 o versioni successive, è necessario esaminare lo strumento mysql_config_editor che consente di archiviare le credenziali in un file crittografato. Grazie a Giovanni per avermelo detto.
È possibile utilizzare l' mysql_config_editorutilità per archiviare le credenziali di autenticazione in un file di percorso di accesso crittografato denominato .mylogin.cnf.
Per creare un nuovo set di credenziali eseguite:
mysql_config_editor set --host=db.host.org --user=dbuser --password
e inserisci la tua password quando richiesto.
Ciò memorizzerà le credenziali di autenticazione nel clientpercorso di accesso predefinito .
È possibile memorizzare più credenziali di autenticazione specificando --login-pathun'opzione diversa :
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Per impostazione predefinita, il mysqlclient legge i gruppi [client]e [mysql]da altri file di opzioni, quindi li legge anche dal file del percorso di accesso. Con --login-pathun'opzione, i programmi client leggono inoltre il percorso di accesso denominato dal file del percorso di accesso. I gruppi di opzioni letti da altri file di opzioni rimangono gli stessi. Considera questo comando:
mysql --login-path=db2
Il mysqlclient legge [client]e [mysql]da altri file di opzione e [client], [mysql]e [mypath]dal file percorso di accesso.
Per stampare tutte le informazioni memorizzate nel file di configurazione eseguito:
mysql_config_editor print --all=true
Ulteriori informazioni sull'utilità sono disponibili in "mysql_config_editor - Utilità di configurazione MySQL" .
Non dobbiamo far finta che .mylogin.cnf sia sicuro, dato che posso usare my_print_defaults -s [use your login-path]per far apparire quella password in chiaro. Questo è il motivo per cui MariaDB non supporta questo approccio di "sicurezza per oscurità".
C'è un altro modo, ortogonale ai metodi sopra menzionati, ma può essere un rischio per la sicurezza se qualcun altro sta guardando il tuo monitor, O se stai salvando la tua cronologia .
Tuttavia è un'opzione, che ti impedirà di essere richiesto, e quella che utilizzo nelle immagini docker usa e getta e così via ...
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
Non ti verrà richiesto, puoi impostare un alias temporaneo nella shell se lo desideri.
Usare con cautela.
mysql Ver 14.14 Distribuisci 5.5.61-38.13, per debian-linux-gnu (x86_64) usando readline 5.1