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)