1

Created an event using CREATE EVENT.

It exists:

 +---------+-------------------------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
 | Db      | Name                    | Definer        | Time zone | Type      | Execute at | Interval value | Interval field | Starts              | Ends | Status  | Originator | character_set_client | collation_connection | Database Collation |
 +---------+-------------------------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
 | postfix | clean_spam_domains_TEST | root@localhost | SYSTEM    | RECURRING | NULL       | 5              | SECOND         | 2017-06-26 12:33:22 | NULL | ENABLED |          0 | utf8                 | utf8_general_ci      | latin1_swedish_ci  |
 +---------+-------------------------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+

To confirm it is working, I turned on logging:

 SET GLOBAL log_output = 'TABLE';
 SET GLOBAL general_log = 'ON';

So, I am expecting to see the execution of the event in the log once every 5 seconds.

I don't.

Should I? Or does this type of event not show in the general_log?

Update: As requested, here is the output of mysqladmin debug:

Events status:
LLA = Last Locked At  LUA = Last Unlocked At
WOC = Waiting On Condition  DL = Data Locked

Event scheduler status:
State      : INITIALIZED
Thread id  : 0
LLA        : n/a:0
LUA        : n/a:0
WOC        : NO
Workers    : 0
Executed   : 0
Data locked: NO

Event queue status:
Element count   : 1
Data locked     : NO
Attempting lock : NO
LLA             : create_event:170
LUA             : create_event:174
WOC             : NO
Next activation : never    

Create statement:

 CREATE EVENT clean_spam_domains_TEST
 ON SCHEDULE EVERY 5 SECOND
 delimiter $$
 DO BEGIN
 DROP TABLE IF EXISTS deathrow;
 CREATE TEMPORARY TABLE deathrow (
 SELECT 
     whitelist_id
 FROM
     postfix.whitelist
         LEFT JOIN
     free_email_providers ON whitelist.whitelist_domain = free_email_providers.free_email_providers_domain
 WHERE
     free_email_providers_id IS NOT NULL);
 DELETE FROM whitelist 
 WHERE
     whitelist.whitelist_id IN (SELECT 
         whitelist_id
     FROM
         deathrow);
 END;
 delimiter ;     
DrDamnit
  • 203
  • 1
  • 4
  • 12

0 Answers0