我编写了一个 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/