Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Cron-Job für MySQL-Tabelle abschneiden?

Der wahrscheinlichste Grund für das Fehlschlagen Ihres Befehls ist, dass Sie keinen absoluten Pfad für mysql angegeben haben. Gehen Sie so vor

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

Es sollte gut funktionieren.

Das liegt daran, dass cron unter einem Konto ausgeführt wird, für das entweder PATH nicht definiert ist oder das keinen Pfad zu mysql enthält.

Jetzt gibt es eine weitere Option - die Verwendung eines MySQL-Ereignisses

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

Wenn Sie sich für einen Event-Ansatz entscheiden:

  • verwende SHOW EVENTS um erstellte Events mit ihren Attributen aufzulisten (z.B. status )
  • Verwenden Sie SHOW PROCESSLIST um zu überprüfen, ob der Ereignisplaner aktiviert ist. Wenn es eingeschaltet ist, sollten Sie einen Prozess "Daemon" sehen " von Benutzer "event_scheduler ".
  • benutze SET GLOBAL event_scheduler = ON; um den Planer zu aktivieren, wenn er derzeit nicht aktiviert ist.
  • Weitere Informationen zum Konfigurieren des Ereignisplaners finden Sie hier