我有一个php脚本我想从MacOs上的终端在后台运行。我无法连接到数据库,但是从浏览器运行时完全相同的脚本没有问题。从命令行PDO MySQL连接问题
继承人的脚本:
<?php
echo "START";
try {
$con = new PDO("mysql:host=localhost;dbname=issues;charset=utf8", "root", "root");
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch(PDOException $e) {
throw new Exception($e->getMessage());
}
echo "here"; ?>
我与php script.php
与try catch块我得到的错误运行它从终端是:
START
致命错误:带有消息'SQLSTATE [HY000] [2002]未在/ Applications/MAMP/htdocs/issueManager3/notifi中未捕获异常'异常' cations.php:11 堆栈跟踪:#{0}主要在 抛出/Applications/MAMP/htdocs/issueManager3/notifications.php第11行
我得到没有try catch块的错误是: START 致命错误:在/Applications/MAMP/htdocs/issueManager3/notifications.php:6 堆栈跟踪:#0 /应用程序/ MAMP /消息中未发现异常'PDOException',消息为'SQLSTATE [HY000] [2002]无此文件或目录' htdocs/issueManager3/notifications.php(6):PDO - > __ construct('mysql:host = loca ...','root','root')#1 {main} /Applications/MAMP/htdocs/issueManager3/notifications.php on line 6
这是说没有这样的文件或目录,但它回应出“开始”,所以它绝对不是无法找到脚本的情况。当我正在从终端执行脚本时,我是否需要添加连接到数据库?
任何帮助表示赞赏。
@jeroen检查上述 – user3763741 2014-09-06 01:52:15
编辑@jeroen使用127.0.0.1给出了同样的错误 – user3763741 2014-09-06 01:59:48
你知道,当你由cron的东西,你一般需要绝对路径?如果需要通过cron运行,那么可以轻松使用apache的东西需要绝对路径。确保你的cron运行可以找到所有需要的文件。查看所有包含内容并要求 – 2014-09-06 02:26:09