Вероятнее всего, ваша команда не работает, так это то, что вы не указали абсолютный путь для mysql. Сделать это таким образом
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Он должен работать нормально.
Это потому, что cron выполняется под учетной записью, которая либо не имеет PATH, либо не имеет пути к mysql.
Теперь есть еще один вариант - с помощью MySQL event
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Если вы решите пойти с подходом события:
- использования
SHOW EVENTS
в список созданных событий с их атрибутами (например, status
)
- использовать
SHOW PROCESSLIST
, чтобы проверить, является ли планировщик событий включен. Если он включен, вы должны увидеть процесс «Daemon
» пользователем «event_scheduler
».
- использовать
SET GLOBAL event_scheduler = ON;
, чтобы включить планировщик, если он в данный момент не включен.
- Подробнее о настройке планировщика событий чтения here
ли команда, которую вы при условии работы? Если нет - как это относится к cron? – zerkms
Извините, его работа cron, я, должно быть, ошибся. Нет кода не работает. – HamAndCheese
В используемой команде нет ничего плохого, если вы используете действительные учетные данные и имена объектов. Ошибка должна быть где-то в другом месте. –