My Sql

donner des droits :

grant all privileges on kin_bdd.* to 'USERNAME'@'localhost';

Créer une bdd et un user en mm temps :

grant all privileges on ma_bdd.* to 'USERNAME'@'%' identified by 'PASSWORD';

Liste les users et passwords :

select user,host,password from mysql.user;

Changer le mot de passe :

UPDATE mysql.user SET password=PASSWORD("nouveau_mdp") where User="root";

Mass kill processes

Radical (kill tous les process sur toute la base specifiee)

for i in `mysql -e"show full processlist"|grep NOMDELABDD |awk '{print $1}'` ; do mysql -e"kill $i" ; done    

Moins radical : juste les SELECT

mysql -e "show processlist" | grep SELECT | awk '{print $1}' | xargs -I {} mysql -e "kill {}"

Autre façon :

select concat('KILL ',id,';') from information_schema.processlist where info like "select%" into outfile             '/tmp/a.txt'; source /tmp/a.txt;

Dump propre avec encoding :

mysqldump --single-transaction --routines --triggers --databases nom_bdd -r utf8.dump

Import propre avec encoding :

mysql -uroot -p --default-character-set=utf8mb4 database
mysql> SET names 'utf8'
mysql> SOURCE utf8.dump

Dump gzipé sale :

mysqldump --single-transaction --routines --triggers --databases nom_db | gzip > /path/to/file/nom_bd.sql.gz

Dump à dezippé :

gunzip < nom_db.sql.gz | mysql < mysql options> OR gunzip -v outputfile.sql.gz

Boucle de restauration :

for file in  $(ls wkdump/*.gz)
do
echo "restore of $file"
zcat $file | mysql wk && rm $file
done

Suivi Lag réplication :

watch -n 1 'mysql -bse "show slave status\G" '

Skip Erreur réplication :

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;

Extraction d'un binlog :

mysqlbinlog --base64-output=decode-rows /path/to/binlog/master-log-bin.xxxxx > /path/to/file.txt

Lire un binlog :

mysqlbinlog master-log-bin.000006 --start-position=60648325 --base64-output=DECODE-ROWS -v

Status du moteur InnoDB :

show engine innodb status;
Last updated on 9th Feb 2021