Accesso a MySQL negato per l'utente 'root' @ 'localhost'


24

Nel mio server, ogni volta che provo ad accedere a MySQL ricevo l'errore:

Accesso negato per l'utente 'root' @ 'localhost' (utilizzando la password: NO)

quando provo mysqladmin -u root -p passwordottengo

Accesso negato per l'utente 'root' @ 'localhost' (utilizzando la password: SÌ)

Come posso accedere a MySQL nel mio server Ubuntu 12.04?


1
Cerca di evitare di digitare la password come parametro nella riga di comando, altri utenti possono trovarla tramite elenchi di processi. Molto meglio digitarlo direttamente nel programma o usare un tasto
— Amias,

La sintassi -p passwordè sbagliata, deve essere -ppasswordma non è consigliata. Maggiori informazioni: stackoverflow.com/questions/5131931/...
— Melebius

Controllare questa pagina per possibili cause di questo errore e soluzioni alternative per correggere l'errore. rathishkumar.in/2017/04/… . Potrebbe esserti d'aiuto.
— rathishDBA,

Risposte:


12

Se stai eseguendo n localhost, digita il seguente comando nel terminale:

mysql -u root -p

Se stai utilizzando un server esterno, inserisci anche l'IP host (xxx.xxx.xxx.xxx):

mysql -hxxx.xxx.xxx.xxx -uroot -p

Ti verrà richiesta la password, inseriscila e sarai in grado di accedere al tuo prompt di MySQL.

Puoi anche guardare questa risposta su come resettare la tua password MySQL.


Sono entrato ma non so ancora come modificare o scegliere una password
— user253867

Nella risposta a cui ho collegato, è necessario sostituire il 5.xalla fine con la versione del server MySQL che si sta utilizzando. Sto usando 5.5 quindi il mio comando saràsudo dpkg-reconfigure mysql-server-5.5
— Parto

9
quindi, il problema è che OP vede Access denied for user 'root'@'localhost'. Suggerisci di chiamare mysql -u root -p. Il risultato di questo comando è: Access denied for user 'root'@'localhost'.
— phil294,

5
sudo mysql -u root -pfunziona per me, ma mysql -u root -pnon lo è
— Ivan Black il

7

Ottengo gli stessi sintomi quando aggiorno, ma per me la correzione (dopo aver ucciso mysql e aver riavviato con --skip-grant-tables per entrare) è eseguire

update mysql.user set plugin = '';

Al processo di aggiornamento piace impostare questa colonna su "unix_socket". Non so che cosa dovrebbe realizzare, ma per me rompe tutto.


Questo risolve il mio problema su Ubuntu 16 LTS, dopo aver provato tutto .. permessi, utente di gruppo. Grazie.
— Onalbi,

Sì, avevo eseguito lo script di hardening e il plug-in è stato modificato in mysql_socketmodo che qualunque cosa stavo usando PASSWORD('xxxxxx'), non funzionava.
— TheVillageIdiot

4

Imposta una password per mysql

sudo dpkg-reconfigure mysql-server-5.x

Ora apri il terminale e digita

mysql -uroot -p

dare la password e premere invio


4

Ho risolto il mio problema con questo:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server

Sii estremamente responsabile. Con questa soluzione, stai rimuovendo il server MySql e tutti i suoi dati.


Non funziona per me.
— Ivan Black,

!! Sii estremamente responsabile. Con questa soluzione stai rimuovendo il server MySql e tutti i suoi dati.
— Matiss Jurgelis,

4

Lo stesso di Ulrich Metzger, dopo aver aggiornato la mia macchina su Ubuntu 16.04 e Mysql-server-5.7, non sono riuscito ad accedere con root perché la plugincolonna è cambiata.

Il mio problema non è stato risolto con sudo dpkg-reconfigure mysql-server-5.7+ rimozione + spurgo + pulizia.

Ho dovuto interrompere il servizio mysql:

# sudo service mysql stop

Quindi riavviare il demone mysql con l' --no-grant-tablesopzione:

# sudo mysqld_safe --no-grant-tables &

Quindi, in un altro terminale, inserisci la console mysql (che ora non necessita di autenticazione) con il comando mysqle aggiorna le colonne password e plugin tramite SQL UPDATE:

UPDATE mysql.user 
  SET authentication_string=PASSWORD(''), 
      plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';

Infine, uccidi il mysqld_safecomando, riavvia il servizio mysql e connettiti normalmente a mysql:

# sudo service mysql start
# mysql

2

Dopo l'aggiornamento da Ubuntu 14.4LTS a 16.4LTS l'utente root di mysql non può più accedere a causa di una voce errata nella colonna dei plugin della tabella utenti mysql. L'aggiornamento imposta il valore del plug-in per l'utente root @ localhost su auth_socket ma la voce corretta deve essere mysql_native_password , se in precedenza è stata utilizzata la crittografia della password nativa mysql.


Questo è quello che ha funzionato per me e sembra essere la radice del problema. Disinstallare e reinstallare non farà nulla per risolvere il "problema".
— SteveFromAccounting
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.