Memorizza la password del client MySQL o imposta la password meno l'autenticazione


11

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?


Accetta le risposte ad alcune delle tue domande precedenti, poiché sembra che molte di queste siano state soluzioni corrette: fai clic sul segno di spunta delineato a sinistra della risposta.
Shane Madden,

Risposte:


15

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.


Questo è fantastico ha funzionato .. Grazie
Viaggio

Se la risposta ha risolto il problema, è necessario fare clic sul segno di spunta per accettarlo.
Zoredache,

1
Questo memorizzerà la password come testo semplice, una pratica che scoraggerei da un punto di vista della sicurezza.
Giovanni,

@Giovanni certo, anche se il mysql_config_editor che menzioni nella tua risposta, mentre utile non è disponibile fino a quando non esegui 5.6.6. Esistono ancora distribuzioni che hanno versioni precedenti.
Zoredache,

Ma come si fa su Windows?
Wolfpack'08

9

È 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" .


2

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à".


Allora, qual è la risposta a questa domanda allora?
Pierre.Vriens,

0

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.