GNU/Linux >> Linux Esercitazione >  >> Linux

Connettiti a MySQL tramite la riga di comando senza utilizzare la password di root?

Soluzione 1:

Sia per MySQL che per PostgreSQL è possibile specificare utente e password nel file di configurazione locale. .my.cnf per MySQL e .pgpass per PostgreSQL. Questi file dovrebbero trovarsi nella tua home directory (ad es. ~/.my.cnf).

.my.cnf:

[mysql]
user=user
password=password

.pgpass:

host:port:database:user:password

Puoi avere una voce jolly qui, sostituendo qualsiasi campo per *******.

PS:NON SPECIFICARE MAI UNA PASSWORD NELLA RIGA DI COMANDO! Questo può essere perfettamente visibile con ps se il tuo sistema non è configurato per non mostrare i processi che appartengono ad altri utenti.

@thinice:se vuoi creare quei file davvero sicuri dovresti fare:

umask 077
touch .my.new.config
umask 022 # or whatever was your default

In questo modo il file verrebbe creato con autorizzazioni sicure fin dall'inizio e nessun intercettatore avrebbe la possibilità di carpire la tua password.

PostgreSQL rifiuterà comunque di utilizzare il file con autorizzazioni superiori a 0600.

Soluzione 2:

mysql_config_editor set --login-path=storedPasswordKey --host=localhost --user=root --password

Come eseguo una riga di comando con una password sicura??usa l'editor di configurazione!!!

A partire da mysql 5.6.6 puoi memorizzare la password in un file di configurazione e quindi eseguire comandi cli come questo....

mysql --login-path=storedPasswordKey ....

--login-path sostituisce le variabili... host, utente E password.ottimo giusto!

Soluzione 3:

Non mettere le virgolette intorno alla password perché se lo fai le virgolette sono considerate parte della password.

Soluzione 4:

MYSQL_USER="root"
MYSQL_PASSWORD="PASSWORD"
DBNAME="DB_NAME"

mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE DATABASE $DBNAME;" 2> /tmp/error1

STATUS=$? 
if [ $STATUS -eq 0 ];
then 
    echo -e "Database '$DBNAME' is created"
elif (grep -i "^ERROR 1007" /tmp/error1 > /dev/null);
then
    echo -e "Database '$DBNAME' already exists"
else
    echo -e "Failed to create database '$DBNAME'"
fi

rm -r /tmp/error1 

Questo farà il trucco, grazie


Linux
  1. Come riavviare Linux utilizzando la riga di comando

  2. Come cambiare la password di root mysql

  3. Ottieni la dimensione totale del mio disco rigido in Linux, utilizzando la riga di comando, senza i permessi di root?

  4. Linux:imposta la data tramite la riga di comando

  5. Impostazione della password di root nella nuova installazione di mysql 5.7

Come connettersi a MySQL dalla riga di comando di Windows

Forza gli utenti a utilizzare la password di root anziché la propria password quando utilizzano il comando Sudo

Come modificare la password sudo tramite la riga di comando su CentOS 8

Come reimpostare la password di root di MySQL

Come connettersi a MySQL usando PHP

Come ripristinare la password di root di MySQL 8.0 su Centos 7.x?