使用cron运行PHP文件时的MySQL数据库连接错误

时间:2019-06-13 14:12:03

标签: php mysql cron

我必须每两个小时从cron作业中运行一个PHP文件,并且通过cron运行PHP脚本时出现MySQL数据库连接错误。该脚本可以正常运行,并且完全符合我预期从浏览器甚至从命令行运行的脚本。

我已经阅读了在Google搜索结果中找到的所有答案,但是没有一个可以解决我的问题。我认为没有任何与我的问题有关的答案,所以我在问这个问题。

以下是数据库连接php脚本:

<?php

$cs = "localhost";
$cu = "root";
$cp = "mypassword";
// $cp = "";
$cn = "mydatabasename";

$conn = @mysqli_connect($cs, $cu, $cp, $cn);

if (!$conn) {
    die("Database connection error... " . mysqli_connect_error());
}

我正在从浏览器和命令行运行脚本,一切都按预期运行,就在我从cronjob运行脚本时,出现以下错误:

  

数据库连接错误...用户'root'@'localhost'的访问被拒绝(使用密码:NO)

假设root,mypassword,mydatabasename是正确的凭据,因为我可以在浏览器甚至命令行上成功运行脚本。我正在cronjob中使用PHP文件的绝对路径。

我正在通过以下命令运行cronjob:

0 0-23/2 * * * php -f /var/www/html/project-name/execute-cronjob.php >> /var/www/html/project-name/output.log

我正在使用Ubuntu,并具有VPS服务器。

请帮助我解决问题,并告诉我是否需要更多有关此信息。

谢谢!

1 个答案:

答案 0 :(得分:-1)

改用shell脚本

    [HttpPost]
    public ActionResult Word()
    {
        var assigned = Json(Assigned(), JsonRequestBehavior.AllowGet);
        return assigned;
    }

有类似的答案here