Den mest troliga anledningen till att ditt kommando misslyckas är att du inte angav en absolut sökväg för mysql. Gör så här
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Det borde fungera bra.
Det beror på att cron körs under ett konto som antingen inte har PATH definierat eller inte inkluderar en sökväg till mysql.
Nu finns det ett annat alternativ - att använda en MySQL-event
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Om du bestämmer dig för att gå med en händelsestrategi:
- använd
SHOW EVENTS
för att lista skapade händelser med deras attribut (t.ex.status
) - använd
SHOW PROCESSLIST
för att kontrollera om händelseschemaläggaren är aktiverad. Om den är PÅ bör du se en process "Daemon
" av användaren "event_scheduler
". - använd
SET GLOBAL event_scheduler = ON;
för att aktivera schemaläggaren om den för närvarande inte är aktiverad. - Mer om att konfigurera händelseschemaläggaren läs här