Você pode tentar usar MySQL Events para isso:
CREATE EVENT IF NOT EXISTS `dbName`.`eventName`
ON SCHEDULE
EVERY 1 DAY // or 1 HOUR
COMMENT 'Description'
DO
BEGIN
DELETE FROM `dbName`.`TableName` WHERE `expireDateCol` < NOW();
END
OBSERVE que o MySQL Event Scheduler precisa estar habilitado em seu servidor:
SET GLOBAL event_scheduler = ON;