A senha de administrador do MariaDb parece não funcionar

7

Acabei de instalar MariaDb em um novo Ubuntu Gnome e executei mysql_secure_installation depois onde eu configurei uma senha de administrador decente, removeu o usuário anônimo, etc.

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

  • Se eu tentar fazer o login da 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 que inseri a senha correta que eu configurei com mysql_secure_installation antes ...
  • Quando executo o comando do root usando sudo mysql -u root -p , sempre obtenho acesso ao banco de dados, não importa qual senha eu realmente insira ...

É este comportamento normal, estou fazendo algo errado ou de alguma forma eu estraguei a instalação?

    
por suamikim 07.08.2016 / 01:23

1 resposta

12

Esse comportamento parece consistente com a ativação do plug-in para autenticação de soquete para o usuário raiz, onde MariaDB confia nas credenciais do sistema operacional recebidas pelo soquete e não depende de uma senha. Usando sudo ou logando como root você pode se conectar ao servidor de banco de dados como root, porque você está root no sistema operacional, mas outros usuários do sistema operacional não podem.

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 tenha a senha root do MariaDB deve ser capaz de fazer logon como root.

A alternativa é configurar outro usuário, não o root, que também tenha privilégios de administrador completos e use isso, em vez de root, para fins de administrador:

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