Chi usa GUI come "Mysql Administrator" sicuramente ha apprezzato il bottone "kill user" ma improvisamente in "Mysql Workbench" la funzionalità è stata rimossa ed allora bisogna inventarsi qualcos'altro!
La cosa più comoda è sicuramente una procedura fatta ad HOC per non doverci ricordare quasi nulla!
DELIMITER $$
DROP PROCEDURE IF EXISTS `mysql`.`kill_user`$$
CREATE PROCEDURE `mysql`.`kill_user` (kill_user_name VARCHAR(16) CHARSET utf8)
SQL SECURITY INVOKER
BEGIN
DECLARE query_id INT;
DECLARE iteration_complete INT DEFAULT 0;
DECLARE query_cursore CURSOR FOR SELECT id FROM INFORMATION_SCHEMA.PROCESSLIST WHERE user=kill_user_name;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET iteration_complete=1;
OPEN query_cursore;
cursor_loop: LOOP
FETCH query_cursore INTO query_id;
IF iteration_complete THEN
LEAVE cursor_loop;
END IF;
KILL query_id;
END LOOP;
CLOSE query_cursore;
END$$
DELIMITER ;
Ora che la nostra procedura è salvata nel DB ci basta invocarla per mandare a casa l'utente fastidioso!
CALL mysql.kill_user('utente_xxx');
- Log in to post comments