A senha de administrador do MariaDb parece não funcionar

8

Acabei de instalar MariaDbum novo Ubuntu Gnome e executei o mysql_secure_installation posteriormente, onde defini uma senha de administrador decente, removi o usuário anônimo etc.

Depois, percebi um comportamento estranho em relação à senha do administrador:

  • Se eu tentar fazer login na minha conta de usuário normal usando o comando mysql -u root -p, sempre recebo um erro: ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    Tenho certeza de que inseri a senha correta que defini anteriormente com o mysql_secure_installation ...
  • Quando executo o comando a partir da raiz sudo mysql -u root -p, sempre obtenho acesso ao banco de dados, independentemente da senha que eu insira ...

Esse é um comportamento normal, estou fazendo algo errado ou estraguei a instalação?

suamikim
fonte

Respostas:

16

Esse comportamento parece consistente com a habilitação do plug - in para autenticação de soquete para o usuário raiz, em que o MariaDB confia nas credenciais do sistema operacional recebidas no soquete e não depende de uma senha. Ao usar sudoou fazer logon como root, você pode conectar-se ao servidor de banco de dados como root, porque você é root no SO, mas outros usuários do SO não.

Você pode remover essa opção com:

$ sudo mysql -u root

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

e, em seguida, você obtém o comportamento esperado que qualquer usuário que possua a senha raiz do MariaDB poderá fazer logon como raiz.

A alternativa é configurar outro usuário, não root, que também tenha privilégios totais de administrador e usá-lo, em vez de root, para fins administrativos:

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

A resposta de HBruijn especificada para uso

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

No entanto, isso quebrou o sistema de login para mim, pois ninguém mais conseguia fazer login (usando a senha correta ou não, e sudo ou não)

Para que eu funcionasse, eu precisava usar isso:

update user set plugin="mysql_native_password" where User='root';
Alex
fonte