Não é possível efetuar login no MySQL a partir do localhost com o Host configurado como%

0

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?

    
por Melebius 10.07.2015 / 10:47

2 respostas

0

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

    
por 18.07.2016 / 11:24
0

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.

    
por 14.07.2015 / 17:47