[LAMP] Mysql Access denied for user 'root'@'localhost'
-
- Scoppiettante Seguace
- Messaggi: 704
- Iscrizione: venerdì 16 settembre 2005, 20:51
- Desktop: Xubuntu
- Distribuzione: 20.04
- Sesso: Maschile
[LAMP] Mysql Access denied for user 'root'@'localhost'
Salve come da titolo non riesco ad accedere a mysql (su lubuntu 20.04) , io utilizzo adminer per la gestione e quando tento di accedere ho l'errore :
Access denied for user 'root'@'localhost'
Ho provato a seguire questa guida :
https://wiki.ubuntu-it.org/Server/MySql/PasswordReset
sia il passo primo che secondo ma stesso problema.
Access denied for user 'root'@'localhost'
Ho provato a seguire questa guida :
https://wiki.ubuntu-it.org/Server/MySql/PasswordReset
sia il passo primo che secondo ma stesso problema.
-
- Scoppiettante Seguace
- Messaggi: 704
- Iscrizione: venerdì 16 settembre 2005, 20:51
- Desktop: Xubuntu
- Distribuzione: 20.04
- Sesso: Maschile
Re: [LAMP] Mysql Access denied for user 'root'@'localhost'
Ho visto che mi fa accedere da terminale solamente come superuser
-
- Scoppiettante Seguace
- Messaggi: 704
- Iscrizione: venerdì 16 settembre 2005, 20:51
- Desktop: Xubuntu
- Distribuzione: 20.04
- Sesso: Maschile
Re: [LAMP] Mysql Access denied for user 'root'@'localhost'
Sono riuscito a creare un utente con :
Se cerco di creare un database :
ho:
Codice: Seleziona tutto
create user 'stefano'@'localhost' identified by 'root';
Codice: Seleziona tutto
CREATE DATABASE `prova` COLLATE 'utf8mb4_unicode_ci';
Codice: Seleziona tutto
Access denied for user 'stefano'@'localhost' to database 'prova'
- DoctorStrange
- Imperturbabile Insigne
- Messaggi: 2855
- Iscrizione: mercoledì 14 ottobre 2015, 9:33
- Desktop: Gnome3
- Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
- Sesso: Maschile
- Località: Roma, Italia
Re: [LAMP] Mysql Access denied for user 'root'@'localhost'
Dunque, visto che non ti risponde nessuno, mi avventuro io.
Prima di tutto c'è da dire questo, non appena hai installato il DB, almeno le prime volte, sarebbe meglio evitare di usare parser od intermediari, come questa applicazione che usi: "adminer", fra l'altro personalmente non l'ho mai sentito.
Tieni anche presente, che su linux, e soprattutto su MySQL, è soprattutto una questione di utenze e credenziali, e solo secondariamente ci sono problemi di configurazioni specifiche.
Dei messaggi che hai postato, non si capisce quali utenze tu abbia usato sia per connetterti a Mysql, sia quali utenze hai usato per provare a creare i database.
Nel tuo primo tentativo, hai avuto questo generico messaggio di errore:
Ma non hai specificato cosa tu hai provato a fare per connetterti. Con quale utenza? Quale stringa hai usato per connetterti, oppure come hai configurato il parser specifico che usi?
Tendenzialmente quello è un generico errore che ti dice che con quell'utente non è stato in grado di connettersi a quel DB. Mi sembra una brutta idea, tentare di ripristinare una password di root, se non sei piu che sicuro di aver perso la stessa password di root. E non mi sembra sia il tuo caso.
Poco sotto poi dici:
Il consiglio che, a questo punto ti do, è di provare a connetterti al tuo DB con questo comando:
Ti invito a notare, in questo comando il sudo all'inizio. Questo serve perche, quando vuoi connetterti a mysql con l'utenza root, devi specificare il root anche nello stesso comando di connessione.
Se questo comando che ti ho dato funziona, sarai connesso con l'utenza di root, alla sessione del tuo DB, ed in particolare sarai connesso ad un DB interno che si chiama "mysql". Qui, dovresti trovare una tabella che si chiama "user". Prova a dare un per vedere come è composta questa tabella.
Ti consiglio di estrarre questi dati:
Le informazioni che otterrai da questa query sono, nell'ordine, l'elenco di tutti gli utenti che hai creato sul DB, e che sono autorizzati a connettersi.
In particolare, il campo "Host", ti dirà se quello specifico utente può connettersi solo dal "localhost", oppure da una qualunque postazione "%".
Ti dico questo perche, per esempio, uno degli utenti che hai creato per potersi connettere, nella stringa di connessione deve specificare esplicitamente "localhost", e quindi, quello specifico utente dovrebbe connettersi tramite un:
Una volta che sei certo di poterti connettere tramite riga di comando sia con l'utenza root, che l'utenza "stefano", allora possiamo andare avanti.
A questo punto, dovrai assegnare all'utenza "stefano", le grant per accedere a quello specifico DB. Per farlo, accederai come root e darai:
Saluti
Prima di tutto c'è da dire questo, non appena hai installato il DB, almeno le prime volte, sarebbe meglio evitare di usare parser od intermediari, come questa applicazione che usi: "adminer", fra l'altro personalmente non l'ho mai sentito.
Tieni anche presente, che su linux, e soprattutto su MySQL, è soprattutto una questione di utenze e credenziali, e solo secondariamente ci sono problemi di configurazioni specifiche.
Dei messaggi che hai postato, non si capisce quali utenze tu abbia usato sia per connetterti a Mysql, sia quali utenze hai usato per provare a creare i database.
Nel tuo primo tentativo, hai avuto questo generico messaggio di errore:
Codice: Seleziona tutto
Access denied for user 'root'@'localhost'
Tendenzialmente quello è un generico errore che ti dice che con quell'utente non è stato in grado di connettersi a quel DB. Mi sembra una brutta idea, tentare di ripristinare una password di root, se non sei piu che sicuro di aver perso la stessa password di root. E non mi sembra sia il tuo caso.
Poco sotto poi dici:
La domanda a questo punto sorge spontanea: come ti sei connesso con superuser? Quale stringa di connessione hai usato, o come hai configurato l'accesso?pippuccio76 ha scritto:Ho visto che mi fa accedere da terminale solamente come superuser
Vale quanto detto poco sopra, quanto ti connetti con l'utenza root, puoi creare utenze e DB, e puoi anche assegnare grant alle utenze create. Root è l'unica utenza preposta a fare queste attività, con le altre utenze puoi fare (solo se autorizzate dal root), operazioni sulle tabelle.pippuccio76 ha scritto:Sono riuscito a creare un utente con :
Codice: Seleziona tutto
create user 'stefano'@'localhost' identified by 'root';
Probabilmente hai provato a creare un DB usando un'utenza generica.pippuccio76 ha scritto: Se cerco di creare un database :
ho:Codice: Seleziona tutto
CREATE DATABASE `prova` COLLATE 'utf8mb4_unicode_ci';
Codice: Seleziona tutto
Access denied for user 'stefano'@'localhost' to database 'prova'
Il consiglio che, a questo punto ti do, è di provare a connetterti al tuo DB con questo comando:
Codice: Seleziona tutto
sudo mysql --user='root' --password='password-di-root' --host=localhost --port=3306 --database='mysql';
Se questo comando che ti ho dato funziona, sarai connesso con l'utenza di root, alla sessione del tuo DB, ed in particolare sarai connesso ad un DB interno che si chiama "mysql". Qui, dovresti trovare una tabella che si chiama "user". Prova a dare un
Codice: Seleziona tutto
describe user;
Ti consiglio di estrarre questi dati:
Codice: Seleziona tutto
select Host, User, authentication_string from user;
In particolare, il campo "Host", ti dirà se quello specifico utente può connettersi solo dal "localhost", oppure da una qualunque postazione "%".
Ti dico questo perche, per esempio, uno degli utenti che hai creato per potersi connettere, nella stringa di connessione deve specificare esplicitamente "localhost", e quindi, quello specifico utente dovrebbe connettersi tramite un:
Codice: Seleziona tutto
mysql --user="stefano" --host=localhost --password="password-di-stefano";
A questo punto, dovrai assegnare all'utenza "stefano", le grant per accedere a quello specifico DB. Per farlo, accederai come root e darai:
Codice: Seleziona tutto
grant select,create,alter privileges on prova.* to 'stefano'@'%';
Codice: Seleziona tutto
flush privileges;
-
- Scoppiettante Seguace
- Messaggi: 704
- Iscrizione: venerdì 16 settembre 2005, 20:51
- Desktop: Xubuntu
- Distribuzione: 20.04
- Sesso: Maschile
Re: [LAMP] Mysql Access denied for user 'root'@'localhost'
Non capisco perchè non mi viene chiesto di inserire una password come nelle vecchie installazioni password che poi uso con adminer o phpmyadmin o qualsiasi altro strumento per accedere , ora ad esempio su una nuova installazione di xubuntu (notebook tornato dall'assistenza su cui era montato xubuntu 18.04 e che funzionava perfettamente) :
dai comandi che mi hai dato sembra che root non abbia password
ma se da adminer accedo come root e senza pw :
HO sempre lo stesso errore
stesso problema con phpmyadmin :
dai comandi che mi hai dato sembra che root non abbia password
ma se da adminer accedo come root e senza pw :
HO sempre lo stesso errore
stesso problema con phpmyadmin :
- DoctorStrange
- Imperturbabile Insigne
- Messaggi: 2855
- Iscrizione: mercoledì 14 ottobre 2015, 9:33
- Desktop: Gnome3
- Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
- Sesso: Maschile
- Località: Roma, Italia
Re: [LAMP] Mysql Access denied for user 'root'@'localhost'
Era proprio come pensavo. Ora le cose sono finalmente un po più chiare. L'uso di adminer o di qualunque altra interfaccia grafica, non ti permette l'accesso al db con l'utenza root, perché é adminer stesso, a non avere credenziali root sul sistema operativo.
Non so di preciso come tu avvii adminer ma, se per esempio, usassi il terminale, e lo potessi avviare con un comando del tipo: allora adminer sarebbe avviato come root e forse ti consentirebbe l'accesso, ma non ti consiglio assolutamente di tentare questa strada. MAI avviare applicazioni grafiche con sudo. Ci sarebbero grossi problemi di sicurezza sul sistema. Era per farti capire il motivo per cui, secondo me, hai quei problemi di accesso.
Infatti con la stringa di connessione che ti ho suggerito si connette con root senza problemi.
Ora sappiamo che funziona tutto regolarmente.
Per quanto riguarda root, se non mi ricordo male, quando si installa mysql, l'utenza root non ha alcuna password associata, quindi dovresti poter accedere all'istanza root di mysql, con:
Se poi vorrai, potrai decidere di assegnare una password all'utenza root. Cosa consigliata, soprattutto se dovrai esporre questo DB su internet.
La cosa comunque che ti consiglierei al momento, è di creare un'utenza generica, e di assegnargli le grant necessarie.
Dov'è finito l'utente 'Stefano', che avevi detto di aver creato correttamente?
Se non compare nella tabella mysql.user, allora non esiste.
Accedi con root, con il comando che ti ho scritto sopra, crea un utente con la sua password, ed assegnati le grant come ho scritto nel mio messaggio precedente, autorizzandolona leggere e scrivere sulla tabella, poi vedremo di fare il resto.
Non so di preciso come tu avvii adminer ma, se per esempio, usassi il terminale, e lo potessi avviare con un comando del tipo:
Codice: Seleziona tutto
sudo adminer;
Infatti con la stringa di connessione che ti ho suggerito si connette con root senza problemi.
Ora sappiamo che funziona tutto regolarmente.
Per quanto riguarda root, se non mi ricordo male, quando si installa mysql, l'utenza root non ha alcuna password associata, quindi dovresti poter accedere all'istanza root di mysql, con:
Codice: Seleziona tutto
sudo mysql --user='root' --password='' --host=localhost --database='mysql';
La cosa comunque che ti consiglierei al momento, è di creare un'utenza generica, e di assegnargli le grant necessarie.
Dov'è finito l'utente 'Stefano', che avevi detto di aver creato correttamente?
Se non compare nella tabella mysql.user, allora non esiste.
Accedi con root, con il comando che ti ho scritto sopra, crea un utente con la sua password, ed assegnati le grant come ho scritto nel mio messaggio precedente, autorizzandolona leggere e scrivere sulla tabella, poi vedremo di fare il resto.
-
- Scoppiettante Seguace
- Messaggi: 704
- Iscrizione: venerdì 16 settembre 2005, 20:51
- Desktop: Xubuntu
- Distribuzione: 20.04
- Sesso: Maschile
Re: [LAMP] Mysql Access denied for user 'root'@'localhost'
Ho risolto creando un altro utente come dici tu e come spiegato in questa guida :
https://devanswers.co/phpmyadmin-access ... localhost/
ora creo e posso utilizzare tutte le funzioni .
ps. non c'è stefano (che ho creato adesso ) perchè è il pc tornato dall'assistenza con nuova installazione
https://devanswers.co/phpmyadmin-access ... localhost/
ora creo e posso utilizzare tutte le funzioni .
ps. non c'è stefano (che ho creato adesso ) perchè è il pc tornato dall'assistenza con nuova installazione
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 13 ospiti