在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
的任何想法?
答案 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
(否则,如果您使用任何类型的数据库抽象层,并且只存储一次连接详细信息,那么您的生活会更容易。)