Най-вероятната причина, поради която командата ви е неуспешна, е, че не сте предоставили абсолютен път за mysql. Направете го по този начин
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Би трябвало да работи добре.
Това е защото cron се изпълнява под акаунт, който или няма дефиниран PATH, или не включва път към mysql.
Сега има друга опция - използване на MySQL събитие
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Ако решите да използвате подход към събитието:
- използвайте
SHOW EVENTS
за изброяване на създадени събития с техните атрибути (напр.status
) - използвайте
SHOW PROCESSLIST
за да проверите дали планировчикът на събития е активиран. Ако е ON, трябва да видите процес "Daemon
" от потребител "event_scheduler
". - използвайте
SET GLOBAL event_scheduler = ON;
за да активирате планировчика, ако в момента не е активиран. - Повече за конфигурирането на планировчика на събития прочетете тук