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;