php - CRON 作业的 MySQL 权限

标签 php mysql cron mysql-error-1142

我编写了一个 PHP 脚本,每天由 CRON 执行,以清理文件并删除旧的数据库条目。

脚本运行没有问题,所以我知道这不是 CRON 问题。

问题是我收到以下错误:

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 1142 SELECT command denied to user 'username'@'localhost' for table 'users' in /cron_removeOld.php on line 35

我对后端管理员用户使用相同的数据库凭据,因此我知道他们拥有 SELECT 权限。我想知道这是否与在网络服务器外部运行的脚本有关?

任何帮助将不胜感激!

定时任务:

20 0 * * * php -q /home/user/public_html/tssol/contract/admin/cron_removeOld.php

PHP(第 35 行):

$stmt = $dbh->prepare("SELECT idusers, contract FROM users WHERE contractExpireDate <= NOW()");

数据库信用位于与其他页面共享的包含文件中,所以我知道这不是问题。如果您认为有帮助,将发布

最佳答案

MySQL 权限与 CLI 或其他方式执行的 PHP 无关
检查您的 mysql 用户是否具有用户表的 SELECT 权限

关于php - CRON 作业的 MySQL 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335902/

相关文章:

php - 无法访问 MySQL 数据库

php - 具有价格等级的 Laravel 逻辑

php - 简单的FTP传输和编辑脚本?

java - 具有相同名称字段的 DbUtils QueryRunner

mysql - 如何在一些记录之间随机选择一些记录?

php - 并行 cron 作业选取相同的 SQL 行

php - 无序列表-列表项位置

mysql - SQL 选项存储和引用

生成 Go Access 报告的 Cron 作业不起作用

php - 如何在 Bigrock 共享托管服务的 cPanel 中将 php 文件作为 cron 作业运行?