De meest waarschijnlijke reden waarom uw opdracht faalt, is dat u geen absoluut pad voor mysql hebt opgegeven. Doe het op deze manier
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Het zou prima moeten werken.
Dit komt omdat cron wordt uitgevoerd onder een account waarvoor geen PATH is gedefinieerd of waarin geen pad naar mysql is opgenomen.
Nu is er een andere optie - met behulp van een MySQL-gebeurtenis
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Als je besluit om voor een evenementaanpak te gaan:
- gebruik
SHOW EVENTS
om aangemaakte gebeurtenissen met hun attributen weer te geven (bijv.status
) - gebruik
SHOW PROCESSLIST
om te controleren of de gebeurtenisplanner is ingeschakeld. Als het AAN is, zou je een proces "Daemon
. moeten zien " door gebruiker "event_scheduler
". - gebruik
SET GLOBAL event_scheduler = ON;
om de planner in te schakelen als deze momenteel niet is ingeschakeld. - Meer over het configureren van de gebeurtenisplanner lees hier