Разрешения MySQL для работы CRON - PullRequest
0 голосов
/ 14 июня 2011

Я написал PHP-скрипт, который CRON будет выполнять ежедневно для очистки файлов и удаления старых записей в базе данных.

У скрипта нет проблем с запуском, поэтому я знаю, что это не проблема CRON.

Проблема в том, что я получаю следующую ошибку:

Предупреждение : PDOStatement :: execute () [pdostatement.execute]: SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1142 Команда SELECT запрещена для пользователя 'username' @ 'localhost' для таблицы ' вход пользователя / cron_removeOld.php в строке 35

Я использую те же учетные данные БД для администраторов бэкэнда, поэтому я знаю, что у них есть привилегии SELECT. Мне интересно, связано ли это со сценарием, запускаемым вне веб-сервера?

Любая помощь будет принята с благодарностью!

Cron:

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()");

Кредиты БД находятся во включаемом файле, который используется совместно с другими страницами, так что я знаю, что это не проблема .. Если вы считаете, что это поможет, пост будет опубликован

1 Ответ

1 голос
/ 14 июня 2011

Разрешение MySQL не имеет никакого отношения к с PHP, выполняемым CLI или чем-либо еще.
Проверьте, есть ли у вашего пользователя mysql таблицы SELECT для пользователей таблица

...