Existem quatro (4) CENÁRIOS para prestar atenção em
CENÁRIO # 1
Quando você especifica -P<port number>
, você deve estar usando TCP / IP. Assim, -h<IPAddress>
funcionaria.
CENÁRIO # 2
Quando você especifica -P<port number>
sem -h<IPAddress>
, localhost
é assumido. Com isso acontecendo, o TCP / IP não é usado, mas o arquivo de soquete mysql é usado para autenticar.
CENÁRIO # 3
Quando você especifica -h127.0.0.1
sem -P<port number>
, localhost
é assumido. Com isso acontecendo, o TCP / IP não é usado, mas o arquivo de soquete mysql é usado para autenticar.
CENÁRIO # 4
Quando você especifica -h127.0.0.1
com -P<port number>
, localhost
não é assumido. O TCP / IP será usado, mas o usuário deve ser definido corretamente.
Dada a mensagem de erro:
ERROR 1045 (28000): Access denied for user ''@'localhost' (using password: YES)
e como você tentou fazer o login
mysql -u -p -P9906 -h127.0.0.1
Você atingiu o CENÁRIO # 4
SUGESTÃO
Em mysql.user
, verifique se você tem
-
user@localhost
(ok) -
[email protected]
, (ok) -
user@%
(não recomendado mas pode fazer)
com a mesma senha (ou senhas diferentes, se desejado)
Quando você conseguir fazer login com sucesso, execute esta consulta
SELECT USER(),CURRENT_USER();
USER () relata como você tentou autenticar no MySQL
CURRENT_USER () informa como você pode autenticar no MySQL
Adicionar o usuário certo permite autenticar corretamente. Sua meta deve ser configurar usuários em mysql.user
de tal maneira que USER()
e CURRENT_USER()
tenham saída idêntica ou pelo menos o mais específico possível para o host.