【发布时间】:2012-07-23 18:44:57
【问题描述】:
我更喜欢在 shell 中运行 php 脚本,因为输出是直接输出的,而不是像在浏览器中那样分批输出。这对于查看脚本实际上仍在工作以及查看长脚本的哪一部分花费的时间最长非常有帮助。
当我像这样从 shell 调用 php 脚本时
php filename.php
它工作正常,但前提是脚本中没有建立数据库连接。
显然,mysql_connect() 似乎失败了:
Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)
我该如何解决这个问题?
谢谢!
查尔斯
编辑 1
我连接到数据库如下:
//Connect to db
$user="root";
$databasePassword="";
$host="localhost";
$database="database1";
$identifier=mysql_connect($host,$user,$databasePassword,true);
$db1=mysql_select_db($database);
找到解决方案
This 向我展示了正确的方法——就像用“127.0.0.1”替换“localhost”一样简单,因为:“原因是“localhost”是 mysql 驱动程序的特殊名称。使用 unix 套接字连接到 mysql 而不是 tcp 套接字。”
【问题讨论】:
-
mysql unix socket 是否存在于
/var/mysql/mysql.sock? -
什么操作系统?你可能要更改mysql的路径,检查路径
-
如the introduction to the PHP manual chapter on the
mysql_*functions 中所述:不建议使用此扩展来编写新代码。相反,应使用 mysqli 或 PDO_MySQL 扩展名。在选择 MySQL API 时,另请参阅 MySQL API Overview 以获得更多帮助。 -
库什我运行 Mac OS X 10.7.4。 @JonLin 如何检查套接字是否存在?
-
你可能有权限问题...