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.