Puede intentar usar MySQL Events para eso:
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
TENGA EN CUENTA que el programador de eventos de MySQL debe estar habilitado en su servidor:
SET GLOBAL event_scheduler = ON;