La password dell'amministratore di MariaDb non sembra funzionare


8

Ho appena installato MariaDbsu un nuovo Ubuntu Gnome e successivamente ho eseguito mysql_secure_installation dove ho impostato una password amministratore decente, ho rimosso l'utente anonimo ecc.

Successivamente ho realizzato alcuni strani comportamenti riguardanti la password dell'amministratore:

  • Se provo ad accedere dal mio normale account utente usando il comando visualizzo mysql -u root -psempre un errore: ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    sono abbastanza sicuro di aver inserito la password corretta che ho impostato con mysql_secure_installation in precedenza ...
  • Quando eseguo il comando da root utilizzando sudo mysql -u root -p, ottengo sempre l'accesso al database, indipendentemente dalla password che inserisco effettivamente ...

Questo comportamento è normale, sto facendo qualcosa di sbagliato o in qualche modo ho rovinato l'installazione?

Risposte:


16

Tale comportamento sembra coerente con l'abilitazione del plug-in per l' autenticazione socket per l'utente root, in cui MariaDB si fida delle credenziali del sistema operativo ricevute sul socket e non fa affidamento su una password. Usando sudoo accedendo come root puoi connetterti al server di database come root, perché sei root sul SO, ma altri utenti del SO non possono farlo.

Puoi rimuovere quell'opzione con:

$ sudo mysql -u root

mysql> use mysql;
mysql> update user set plugin='' where User='root';
mysql> flush privileges;

e quindi ottieni il comportamento previsto qualsiasi utente che ha la password di root MariaDB dovrebbe essere in grado di accedere come root.

L'alternativa è configurare un altro utente, non root, che disponga anche dei privilegi di amministratore completi e utilizzarlo, anziché root, a fini di amministrazione:

$ sudo mysql -u root
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
->     WITH GRANT OPTION;

0

La risposta di HBruijn specificata per l'uso

update user set plugin='' where User='root';

Tuttavia, questo ha rotto il sistema di accesso per me, poiché nessuno era più in grado di accedere (sia utilizzando la password corretta o meno, sia sudo o meno)

Per farlo funzionare ho dovuto usare questo invece:

update user set plugin="mysql_native_password" where User='root';
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.