127.0.0.1的mysql连接问题

时间:2014-04-28 06:44:12

标签: mysql

当我使用127.0.0.1作为主机连接到mysql服务器时,它无法连接

     Issue :  Access denied 

当我使用localhost作为主机连接到mysql服务器时,它将能够连接。

“127.0.0.1”与“localhost”相同。

还有一些我读到的mysql无法

  MySQL won't auto-resolve the host name

这是什么意思?

2 个答案:

答案 0 :(得分:0)

localhost是特殊的,使用UNIX套接字而不是TCP / IP。 127.0.0.1没有得到特殊处理。

请参阅documentation

  

在Unix上,MySQL程序特别对待主机名localhost,其方式可能与您期望的与其他基于网络的程序相比有所不同。对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。即使给出--port或-P选项指定端口号,也会发生这种情况。要确保客户端与本地服务器建立TCP / IP连接,请使用--host或-h指定主机名值127.0.0.1,或本地服务器的IP地址或名称。您还可以使用--protocol = TCP选项显式指定连接协议,即使对于localhost也是如此。

如果在使用TCP / IP时不起作用,则数据库可能无法在网络上侦听。这通常是一件好事,因为它增强了安全性(不是监听127.0.0.1会暴露任何问题,但是监听所有接口会提供更多攻击机会)。

如果您确实希望允许通过网络进行连接,请参阅skip-networking

答案 1 :(得分:0)

为此ip分配权限然后尝试:您可以按照以下方式授予权利;

GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'127.0.0.1' IDENTIFIED BY 'your_pass';

目前只有localhost拥有权限,但本地ip没有。

如果您仍然遇到问题,请分享错误,以便可以检查其他原因。

注意:根据您的要求分配权限,因为我提到所有权限只是一个例子。