Abilita l'accesso senza password a MySQL


15

Come posso cancellare la mia password per MySQL? Non voglio avere una password per connettermi al database. Il mio server esegue Ubuntu.


Proprio per interesse, perché non vuoi una password?
John Gardeniers,

Ad esempio, mi imbatto in errori quando eseguo "dpkg-reconfigure phpmyadmin". Si interrompe con errore 1045 con accesso negato root @ localhost "password: no" che termina.
Lacek,

Risposte:


29

Personalmente, penso invece sia meglio impostare una password e salvarla in /root/.my.cnf:

Primo:

mysqladmin -u root password 'asdfghjkl'

Quindi modifica il file .my.cnf di root:

[client]
password = asdfghjkl

Assicurati di chmod 0600 .my.cnf.

Ora hai una password ma non ti viene più richiesta. La mia installazione predefinita del server MySQL è una password univoca totalmente casuale per ogni server MySQL, salvata nel file .my.cnf in questo modo.


1
Sono pienamente d'accordo con l'impostazione del tuo ambiente per l'autenticazione automatica rispetto alla rimozione della password.
Zoredache,

2
Potresti aver bisogno di virgolette attorno a quella password nel file .my.cnf. Non ha funzionato per me senza.
user67641

1
@ user67641: Potrebbe dipendere dalla versione e da cosa c'è nella tua password ... Le mie sono tutte lunghe stringhe casuali di alfanumerici (senza caratteri speciali) e non sono necessarie virgolette.
Freiheit,

2
Se devi creare /root/.my.cnf, vale la pena impostare esplicitamente le autorizzazioni 0600 su di esso per essere sicuro che nessun altro utente possa ficcare il naso. Il più delle volte gli utenti normali non possono scendere in / root, ma la paranoia extra è quasi sempre garantita.
Dale Anderson,

Missing mv ./+%Y%m%d. $ Db.sql $ OUTPUT` tra mysqldump e gzip
Siddharth

9

Se hai una password impostata per MySQL, segui le istruzioni in Ripristina password root MySQL , quindi imposta la password su null:

Per 5.7.6 e successive

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'

Per 5.7.5 e precedenti

update user set password=PASSWORD("") where User='root';

* è necessario riavviare il DB (vedere le istruzioni al collegamento) affinché ciò abbia effetto.

sudo service mysql restart

in questo caso, non dimenticare di "svuotare i privilegi;"
Marco Ramos,

@meyosef: contrassegnare una risposta come risposta se ha risolto il problema (fare clic sul segno di spunta verde sotto il numero di voti).
jneves,

Pensavo di poter usare una password vuota solo per il socket Unix e non per il loopback, ma non è possibile. Il unix_socketplugin fa una cosa leggermente diversa.
bacino

9

Sì, meno password possono essere una buona cosa. Ma non aprire il database per tutti.

tramite unix_socket:

grant usage on *.* to 'root'@'localhost' identified via unix_socket;

Questo ti dà accesso mysql senza password per un utente root con accesso locale. Btw. questo è il valore predefinito nelle recenti versioni di Ubuntu / Debian.

some_user@box: mysql -u root  # denied
root@box: mysql               # good
some_user@box: sudo mysql     # good, if "some_user" has sudo rights.

Diapositive esplicative: https://www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips .


2
Benvenuti a San Francisco! Bella prima risposta: chiara, un buon riassunto, un collegamento per ulteriori esplorazioni e aggiunge qualcosa al corpus di risposte esistente. Sono lieto di essere il tuo primo voto e spero che tu rimanga in giro a scrivere più risposte come questa.
MadHatter,

Le diapositive vanno bene, ma questa è la documentazione effettiva: mariadb.com/kb/it/library/authentication-plugin-unix-socket
JonnyJD

5

Puoi anche fare:

grant all privileges on *.* to 'root'@'localhost' identified by '';

1

Sono abbastanza sicuro che per impostazione predefinita non esiste una password se l'utente amministratore e accede ad esso localmente. Stai trovando qualcosa di diverso?

funziona?

#> mysqladmin -u root password ''
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.