【问题标题】:Running php script that connects to mysql db in shell在shell中运行连接到mysql db的php脚本
【发布时间】: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 套接字。”

【问题讨论】:

标签: php mysql shell


【解决方案1】:

显示你的 mysql_connect() 语句,如果你的守护进程监听这个端口,也许你应该尝试连接到 localhost:3306。

参见:php.net/mysql_connect

如果相同的脚本在通过浏览器调用时有效,显然你的命令行环境的 ini 文件不同。 ini_get("mysql.default_host") 显示如果您不指定要连接的主机,则使用什么设置。

【讨论】:

  • ini_get("mysql.default_host") 没有显示任何内容... localhost:3306 而不是 localhost 不起作用(尽管它在 3306 上运行)
  • 请查看问题编辑 - 这就是我的连接方式。在浏览器中一切正常。
猜你喜欢
  • 1970-01-01
  • 2011-12-16
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2012-05-03
  • 2012-01-15
  • 1970-01-01
相关资源
最近更新 更多