CREATE EVENT renew_passwords
ON SCHEDULE EVERY 90 DAY
DO
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE user_name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT User FROM mysql.user WHERE Password_Expired = 'Y';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO user_name;
IF done THEN
LEAVE read_loop;
END IF;
SET @sql = CONCAT('ALTER USER ', QUOTE(user_name), '@\'localhost\' IDENTIFIED BY \'', LPAD(FLOOR(RAND() * 1000000000), 10, '0'), '\';');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;