Nejpravděpodobnějším důvodem selhání vašeho příkazu je, že jste nezadali absolutní cestu pro mysql. Udělejte to takto
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Mělo by to fungovat dobře.
Je to proto, že cron se spouští pod účtem, který buď nemá definovanou PATH, nebo neobsahuje cestu k mysql.
Nyní je tu další možnost – pomocí události MySQL
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Pokud se rozhodnete použít událostní přístup:
- použijte
SHOW EVENTSpro seznam vytvořených událostí s jejich atributy (např.status) - použijte
SHOW PROCESSLISTzkontrolujte, zda je povolen plánovač událostí. Pokud je ZAPNUTO, měli byste vidět proces „Daemon" od uživatele "event_scheduler". - použijte
SET GLOBAL event_scheduler = ON;povolit plánovač, pokud není aktuálně povolen. - Další informace o konfiguraci plánovače událostí si přečtěte zde