MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Correção:Acesso negado para o usuário ‘root’@’localhost’ no MariaDB


Se você estiver recebendo um erro informando que o acesso foi negado para o root user no MariaDB, este artigo pode ajudar.

O erro


Eu estava tentando importar as informações de fuso horário do meu sistema para o MariaDB com o seguinte comando:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Mas resultou no seguinte erro:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

A causa


Depois de investigar isso, percebi que o root usuário ainda não tinha sua senha definida.

Quando executei a seguinte consulta:
SELECT user, password 
FROM user
WHERE User = 'root';

Obtive o seguinte resultado:
+-------------+----------+
| User        | Password |
+-------------+----------+
| root        | invalid  |
+-------------+----------+

A documentação do MariaDB afirma o seguinte:

Ainda assim, alguns usuários podem querer fazer login como root do MariaDB sem usar o sudo. Portanto, o antigo método de autenticação - senha convencional do MariaDB - ainda está disponível. Por padrão, ele está desabilitado (“inválido” não é um hash de senha válido), mas pode-se definir a senha com um usual SET PASSWORD demonstração. E ainda retenha o acesso sem senha via sudo.

Então essa parece a nossa resposta.

A solução


De acordo com o parágrafo acima, eu precisava definir a senha para o root do utilizador:
SET PASSWORD FOR 'root'@localhost = PASSWORD("myReallyStrongPwd");

Executando isso (com uma senha diferente) funcionou.

Portanto, se receber o erro acima, talvez isso ajude.