Mysql

How to fix Mysql replication with GTID

Mysql replication

A partire da mysql 5.6 è stato introdotto un nuovo modo per gestire la replicazione master-slave chiamata GTID (global transaction identifier).
Questa nuova modalità fondamentalmente fa si che le varie "transazioni" quando applicate vengano battezzate in maniera univoca all'interno del master e vengano propagate agli slave con l'identificazione completa della transazione. Gli slave applicano quindi le varie transazioni seguendo i GTID uno per volta.
Ma come si ripristina una replica master slave che si è rotta?

Procediamo con ordine....

Tags

Mysql Kill User: come uccidere tutti i thread di un utente

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 ;

Tags

Disabilitare i vincoli di integrità (Foreign Key) su mysql

I vincoli di integrità referenziale (Foreign Key) sono certamente una bella cosa ma puo capitare nella vita di tutti i giorni che ci impediscano di effettuare operazioni di update o drop per noi importanti.
Di default questi vincoli vengono controllati ma è possibile temporaneamente disabilitarli con la seguente sintassi:

SET FOREIGN_KEY_CHECKS = 0;
 
....le query che
 
SET FOREIGN_KEY_CHECKS = 1;

Tags