Php CRON作业的MySQL权限

Php CRON作业的MySQL权限,php,mysql,cron,mysql-error-1142,Php,Mysql,Cron,Mysql Error 1142,我已经编写了一个PHP脚本,由CRON每天执行,以清理文件并删除旧的数据库条目 脚本在运行时没有问题,所以我知道这不是CRON问题 问题是我得到了以下错误: 警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[42000]:语法错误或访问冲突:第35行/cron_removeOld.php中的表“users”的1142 SELECT命令被拒绝 我对后端管理员用户使用相同的DB凭据,因此我知道他们有选择权限。我想知道这是否与在Web服

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

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

问题是我得到了以下错误:

警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[42000]:语法错误或访问冲突:第35行/cron_removeOld.php中的表“users”的1142 SELECT命令被拒绝

我对后端管理员用户使用相同的DB凭据,因此我知道他们有选择权限。我想知道这是否与在Web服务器之外运行的脚本有关

任何帮助都将不胜感激

克朗:

20 0 * * * php -q /home/user/public_html/tssol/contract/admin/cron_removeOld.php
PHP(第35行):


$stmt=$dbh->prepare(“选择idusers,contract FROM users,其中contractExpireDateMySQL权限与通过CLI或其他方式执行的PHP无关。

检查您的mysql用户是否有SELECT provileges for users表

发布您的cron代码和php源代码该查询没有问题。这一定是权限问题。@Jonah,有什么想法吗?我已经做了一整天了。问题是我们在一个共享主机上,所以我没有服务器的根访问权限。是web服务器、db服务器和ser是否在同一台机器上执行cronjob?@Emil,我不知道。这是一个共享主机服务器,我不知道。将我们放在这台主机上的人正在联系主机公司,看看他们是否有任何输入。对于数据库连接中的主机,我尝试了localhost,并将其设置为127.0.0.1,以查看今晚会发生什么……我100%确定是这样的MySQL用户与我在后端管理记录时使用的用户相同,它具有SELECT INSERT DELETE UPDATE privs
$stmt = $dbh->prepare("SELECT idusers, contract FROM users WHERE contractExpireDate <= NOW()");