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.