Se você pode logar no MySQL como root @ localhost, execute o seguinte
SELECT USER(),CURRENT_USER();
O que isso lhe diz:
- USER () relata como você tentou autenticar no MySQL
- CURRENT_USER () informa como você pode autenticar no MySQL
Quando você tem o erro
Access denied for user 'rootd'@'umhef.ca' (using password: YES)
A parte do host foi determinada pela tabela mysql.user
. O MySQL tem uma maneira peculiar, mas metódica, de fazer autenticação de usuário. Em seu tempo livre, você pode ler meu post DBA StackExchange Erro do MySQL: Acesso negado para o usuário 'a' @ 'localhost' (usando a senha: YES) sobre como funciona.
De qualquer forma, para tentar ir direto ao assunto, faça isso
SELECT user,host FROM mysql.user;
Isso lhe dará todos os possíveis valores de CURRENT_USER()
(formas que você tem permissão para se conectar ao MySQL). Meu palpite é que você estava logando tentando fazer o login como rootd@osx
e você provavelmente não tem uma entrada em mysql.user
. Em outras palavras, se você executar
SELECT CONCAT(user,'@',host) userhost FROM mysql.user
WHERE user='rootd' AND host='osx';
você não receberá nada. Se você correr
SELECT CONCAT(user,'@',host) userhost FROM mysql.user WHERE user='rootd';
você pode ver [email protected]
. Se você não fizer isso, então o mysqld assume que você está vindo dessa forma e não existe autenticação correspondente em mysql.user
.
Se você fez alguma alteração no sistema operacional, reinicie o mysqld para que ele possa saber essas mudanças.