Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tronquer la tâche Cron de la table Mysql ?

La raison la plus probable pour laquelle votre commande échoue est que vous n'avez pas fourni de chemin absolu pour mysql. Faites-le de cette façon

/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^

Cela devrait très bien fonctionner.

C'est parce que cron s'exécute sous un compte qui n'a pas de PATH défini ou qui n'inclut pas de chemin vers mysql.

Il existe maintenant une autre option - utiliser un événement MySQL

CREATE EVENT update_date_column 
  ON SCHEDULE EVERY 1 HOUR STARTS NOW()
  DO TRUNCATE TABLE juicebox;

Si vous décidez d'opter pour une approche événementielle :

  • utiliser SHOW EVENTS pour lister les événements créés avec leurs attributs (ex. status )
  • utilisez SHOW PROCESSLIST pour vérifier si le planificateur d'événements est activé. S'il est activé, vous devriez voir un processus "Daemon " par l'utilisateur "event_scheduler ".
  • utiliser SET GLOBAL event_scheduler = ON; pour activer le planificateur s'il n'est pas activé actuellement.
  • Pour en savoir plus sur la configuration du planificateur d'événements, lisez ici