我有一个本地web服务器上运行我的macbook,我遇到了一个奇怪的问题。我可以使用像Sequel Pro这样的程序访问MySQL,密码工作和生活都很棒。MySQL本地主机/ 127.0.0.1问题
在PHP中,如果我将db服务器设置为127.0.0.1,则一切正常。
但是,如果我将数据库服务器更改为本地主机,则会出现'root'@'localhost'错误的访问被拒绝的情况。我已经确定MySQL套接字安装正确,但仍然无法使用本地主机。
任何见解都会很棒。谢谢!
我有一个本地web服务器上运行我的macbook,我遇到了一个奇怪的问题。我可以使用像Sequel Pro这样的程序访问MySQL,密码工作和生活都很棒。MySQL本地主机/ 127.0.0.1问题
在PHP中,如果我将db服务器设置为127.0.0.1,则一切正常。
但是,如果我将数据库服务器更改为本地主机,则会出现'root'@'localhost'错误的访问被拒绝的情况。我已经确定MySQL套接字安装正确,但仍然无法使用本地主机。
任何见解都会很棒。谢谢!
在你的my.cnf文件,要么改变你的绑定地址为localhost或删除绑定地址完全设置(这会让MySQL的监听所有IP的)。
my.cnf文件通常位于/ etc或/ etc/mysql中。
是否有任何重大安全问题去除bind-address设置? – 2014-08-19 23:11:05
如果您的计算机有多个IP地址,那么您会将您的服务器暴露给所有这些IP。如果你在谈论一台单一的IP机器,我不会指望它是一个问题。 – 2014-10-03 21:49:21
除了迈克尔的话,
还有另一个链接:http://dev.mysql.com/doc/refman/5.1/en/connecting.html,它说:
在Unix中,MySQL程序处理的主机名localhost特别,因为是从你可能不同 方式期望与其他 基于网络的程序相比。对于连接到本地主机,MySQL程序 尝试使用Unix套接字文件连接到本地服务器。 即使给出了--port或-P选项来指定端口号 ,也会发生这种情况。
它不是一个典型的TCP/IP连接。如果你有从127.0.0.1:3306到192.168.1.2:3306的本地端口转发,“mysql -h localhost”会尝试连接到本地的unix套接字文件。
它不是特定于你的问题(因为你正在运行php),但希望它有帮助。
这是什么修复了我。对于默认套接字,PHP.INI默认为与MySQL不同的位置。要解决,只需要运行这两个命令来添加一个别名(无需重启需要):
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
一种ServerFault问题吗? – fredley 2011-03-08 22:57:41