Não é possível acessar o MySQL sem executar o sudo

2

Eu recentemente instalei o MySQL em um sistema ARM (RBPI3), se eu executar:

pi@raspberrypi:~ $ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Mas com o sudo, ele se conecta:

pi@raspberrypi:~ $ sudo mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Eu não entendo porque não consigo acessar o serviço se não sou su. Isso também significa que, por exemplo, o WordPress que está sendo executado com o Nginx em execução como usuário WWW-DATA não pode se conectar ao meu banco de dados. O que estou perdendo aqui?

    
por Jeff Schaller 07.10.2017 / 23:25

1 resposta

4

O MariaDB no Debian / Ubuntu, por padrão, autentica via sockets Unix e verifica o ID do usuário unix efetivo do usuário que está chamando mysql . Se você não executar mysql como root (ou com sudo ), isso falhará.

link

Para mudar isso de volta para o método clássico, faça o login no banco de dados com sudo ( sudo mysql -u root ) e altere seu usuário assim:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
FLUSH PRIVILEGES;
    
por 07.10.2017 / 23:38