Edito
Voila voila, je refais mon infra…
Et j'ai donc envie de participer a une oeuvre commune :
Antoine.
Pub
Désolé de vous incommoder avec cela, c'est un mal aujourd'hui nécessaire. Je le souhaite juste utile, on verra.
Ceci est une ancienne révision du document !
Afin d'eviter de redemarrer le MySQL voici ce que l'on peut faire (apres avoir modifier les fichiers de configurations)
mysql> SET GLOBAL expire_logs_days=2; Query OK, 0 rows affected (0.02 sec) mysql> SHOW GLOBAL VARIABLES LIKE "%EXPIRE%"; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 2 | +------------------+-------+ 1 row in set (0.00 sec)
mysql> PURGE BINARY LOGS BEFORE '2012-03-12 22:32'; Query OK, 0 rows affected (0.00 sec)
à completer
mysql> GRANT ALL PRIVILEGES ON table2toto.* TO 'toto'@'localhost' IDENTIFIED BY 'goodsecret';
FLUSH PRIVILEGES;
#!/bin/bash
REP=/var/log/mysql-dump
IPPROD=192.168.251.210/32
#### ATTENTION LES LOGROTATE PLANTERONT SI ON NE FAIT PAS CA LORS DE L'INSTALL
# mkdir -p /var/log/mysql-dump
# touch /var/log/mysql-dump/null.sql.gz
# on considere que les info des cnx sont correctement renseignes ds ~/.my.cnf
# On est bourrin : on fait un dump global puis des dump moins globaux
# et en sus, on compress a la volée
# On est faineant : on consigne la rotation de ces dump a logrorate
# Et pour finir (ou plutot commencer) : on ne dump pas si on a l'ip de prod mysql
ip addr ls | grep -q $IPPROD
if [ $? == 0 ]; then
echo Dump non fait : nous avons l IP de prod aka $IPPROD
exit 2
fi
echo Lancement du DUMP
mkdir -p $REP
echo Traitement global
time mysqldump --master-data --all-databases | gzip -c -9 > $REP/_bigdump.sql.gz
echo Traitement unitaire
mysql -e "show databases\G" | grep "^Database: " | cut -f2 -d" " | while read db
do
echo === $db
time mysqldump --master-data --databases $db | gzip -c -9 > $REP/$db.sql.gz
done
/var/log/mysql-dump/*sql.gz {
daily
rotate 7
missingok
create 640 mysql adm
sharedscripts
postrotate
/opt/mysql/bkp-mysql-adlp
endscript
}
Cf https://dev.mysql.com/doc/refman/5.0/en/purge-binary-logs.html
PURGE BINARY LOGS TO 'mysql-bin.010'; PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';
mysql> show global variables like 'expire_logs_days'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 10 | +------------------+-------+ 1 row in set (0.00 sec)
mysql> set global expire_logs_days=2; Query OK, 0 rows affected (0.03 sec)