在OS X Mavericks上需要127.0.0.1的PHP / mysql

时间:2014-04-12 07:53:59

标签: php mysql osx-mavericks

在Mac OS X 10.6上,我可以使用

连接到php中的mysql
$mysql = mysql_connect(localhost,user,password)

但是,如果我在Mac OS X 10.9(Mavericks)中使用相同的内容,则会收到错误消息:

Warning: mysql_connect(): No such file or directory

如果我使用$mysql = mysql_connect("127.0.0.1",user,password),它运作正常,但我不想在任何地方进行更改。

我在这个网站上看到有套接字问题,但我已经在php.ini.default: pdo_mysql.default_socket=/tmp/mysql.sock

中找到了这个问题

关于如何制作mysql_connect(localhost,user,password) work on 10.9的任何想法?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

你需要的是编辑主机名文件,但我是一个PC用户,所以我不能带你去Mac上。无论如何这里是我发现的,我想它与你的OS版本相同

  

第1步 - 打开Terminal.app

     

开始在Spotlight上键入终端,或者进入   应用程序 - >实用程序 - >终端

     

第2步 - 打开主机文件

     

通过在刚刚打开的终端上键入来打开主机:

     

1 $ sudo nano / private / etc / hosts何时输入您的用户密码   提示。

     

第3步 - 编辑主机文件

     

hosts文件包含一些注释(以#开头的行   符号),以及一些默认的主机名映射(例如127.0.0.1 -   本地主机)。   来源:http://decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/

你需要的是写一个127.0.0.1的条目 - localhost 如果还没有。

答案 2 :(得分:0)

如果以mysql_connect()作为第一个参数调用localhost,PHP会尝试使用UNIX域套接字而不是TCP进行连接。

可能它会查找错误的套接字名称和/或mysql只侦听TCP。

你应该检查你的mysql设置(/ etc / mysql?搜索socket)和php mysql.default_socket配置变量。 (使用pdo连接时会使用您提到的pdo_mysql.default_socket。)

例如我的debian:

$ grep socket /etc/mysql/my.cnf 
socket          = /var/run/mysqld/mysqld.sock

(否则,如果您使用任何类型的数据库抽象层,并且只存储一次连接详细信息,那么您的生活会更容易。)