MySQL localhost connect funciona mas 127.0.0.1 não

3

Alguém sabe o que o erro poderia ser quando eu posso conectar ao meu servidor MySQL via localhost mas não via 127.0.0.1? AFAIK, estes devem ser roteados de forma idêntica e nenhuma camada TCP adicional deve ser criada ao usar o IP.

$ mysql -u root -h localhost -D test # works
$ mysql -u root -h 127.0.0.1 -D test # does not work
(127.0.0.1 does map to localhost/vice versa)

As permissões da tabela são explicitamente definidas para incluir os dois métodos.

    
por Michael Schubert 25.02.2011 / 17:38

2 respostas

3

A biblioteca cliente MySQL substitui o localhost para usar um soquete Unix em vez de uma conexão TCP / IP para 127.0.0.1. Se você pode se conectar ao host local, mas não ao 127.0.0.1, isso sugere que ele é firewall ou não está escutando em 127.0.0.1.

    
por 25.02.2011 / 17:48
2

O manual em Conectando-se ao servidor MySQL sugere o uso da seguinte sintaxe:

shell> mysql --host=127.0.0.1

A explicação é:

On Unix, MySQL programs treat the host name localhost specially, in a way that is likely different from what you expect compared to other network-based programs. For connections to localhost, MySQL programs attempt to connect to the local server by using a Unix socket file. This occurs even if a --port or -P option is given to specify a port number. To ensure that the client makes a TCP/IP connection to the local server, use --host or -h to specify a host name value of 127.0.0.1, or the IP address or name of the local server. You can also specify the connection protocol explicitly, even for localhost, by using the --protocol=TCP option. For example:

    
por 25.02.2011 / 18:10

Tags