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.