Como @wurtel mencionado, a conexão com localhost
ignora o TCP usando um arquivo de soquete do UNIX e, portanto, não é compatível qualquer endereço TCP ( %
).
Referência: MySQL 5.7 Reference Manual - 5.2.2 Conectando-se ao servidor MySQL
Eu instalei o XAMPP 5.5.24 e criei um DB para meu aplicativo e um usuário do MySQL para se conectar a ele. No entanto, eu estava enfrentando o seguinte problema:
O usuário não pôde conectar localmente o MySQL tendo a coluna Host
na tabela mysql.user
definida como %
até que eu conceda acesso de localhost
explicitamente.
mysql> select user, host from mysql.user order by user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| | localhost |
| | linux |
| myNewUser | % |
| myNewUser | localhost |
| pma | localhost |
| root | localhost |
| root | linux |
+------------------+-----------+
7 rows in set (0,00 sec)
Eu acho que %
na coluna Host
deve permitir tudo, incluindo localhost
. No entanto, sem a linha | myNewUser | localhost |
, o MySQL recusa qualquer conexão local (tentou -h localhost
, 127.0.0.1
) até especificar o endereço IP da LAN.
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p
Enter password:
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h localhost
Enter password:
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h 127.0.0.1
Enter password:
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h 10.0.1.2
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 133
Server version: 5.6.24 Source distribution
Este é o comportamento normal? Ou estou faltando alguma coisa?
Como @wurtel mencionado, a conexão com localhost
ignora o TCP usando um arquivo de soquete do UNIX e, portanto, não é compatível qualquer endereço TCP ( %
).
Referência: MySQL 5.7 Reference Manual - 5.2.2 Conectando-se ao servidor MySQL
Se você fizer login via TCP / IP, precisará especificar porta e protocolo
mysql -u myNewUser -p -h 10.0.1.2 -p3306 --protocol=tcp
Então, deve funcionar.
Para verificar, quando você fizer login, execute este
mysql> SELECT USER() AttemptedToLoginAs,CURRENT_USER() MySQLAllowedMeAs;
Se AttemptedToLoginAs
e MySQLAllowedMeAs
ambos disserem myNewUser@%
, você fez corretamente.