无法使用127.0.0.1连接到mysql

use*_*948 10 php mysql database

使用以下代码我可以连接到mysql: mysql_connect("localhost","username","");

但如果我改为localhost,127.0.0.1我会收到以下错误:

无法连接到'127.0.0.1'上的MySQL服务器(13)

为什么它不适用于127.0.0.1?

Que*_*tin 20

localhost是特殊的,并使用UNIX套接字而不是TCP/IP.127.0.0.1不会得到那种特殊处理.

查看文档:

在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.