Najbardziej prawdopodobną przyczyną niepowodzenia polecenia jest to, że nie podałeś absolutnej ścieżki dla mysql. Zrób to w ten sposób
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Powinno działać dobrze.
Dzieje się tak, ponieważ cron działa na koncie, które albo nie ma zdefiniowanej PATH, albo nie zawiera ścieżki do mysql.
Teraz jest inna opcja - użycie zdarzenia MySQL
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Jeśli zdecydujesz się na podejście eventowe:
- użyj
SHOW EVENTSaby wyświetlić listę utworzonych zdarzeń wraz z ich atrybutami (np.status) - użyj
SHOW PROCESSLISTaby sprawdzić, czy harmonogram zdarzeń jest włączony. Jeśli jest włączony, powinieneś zobaczyć proces „Daemon" przez użytkownika "event_scheduler". - użyj
SET GLOBAL event_scheduler = ON;aby włączyć harmonogram, jeśli obecnie nie jest włączony. - Więcej informacji o konfigurowaniu harmonogramu zdarzeń można znaleźć tutaj