Il motivo più probabile per cui il tuo comando non riesce è che non hai fornito un percorso assoluto per MySQL. Fallo in questo modo
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Dovrebbe funzionare bene.
È perché cron viene eseguito con un account che non ha PATH definito o non include un percorso per mysql.
Ora c'è un'altra opzione:usare un evento MySQL
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Se deciderai di optare per un approccio a un evento:
- usa
SHOW EVENTS
per elencare gli eventi creati con i loro attributi (ad es.status
) - usa
SHOW PROCESSLIST
per verificare se il pianificatore di eventi è abilitato. Se è attivo dovresti vedere un processo "Daemon
" per utente "event_scheduler
". - usa
SET GLOBAL event_scheduler = ON;
per abilitare lo scheduler se al momento non è abilitato. - Ulteriori informazioni sulla configurazione dell'utilità di pianificazione degli eventi, leggi qui