Разрешения MySQL для работы CRON

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

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

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

Предупреждение: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: синтаксическая ошибка или нарушение доступа: 1142 Команда SELECT запрещена для пользователя 'username'@'localhost' для таблицы 'users' в /cron_removeOld.php в строке 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()");

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

1 ответ

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

Другие вопросы по тегам