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 usualSET 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.