MySql

De GeRgOsNet

Sauvegarde d’une base de données mysql par ssh :

Dans ces exemples, remplacer MonUser par l’utilisateur de la base, MonHost par le nom du serveur mysql, MonMotDePasse par le mot de passe, Mabase par le nom de la base et dump.sql par le nomdufichier.sql Pour dumper une base (faire un fichier de sauvegarde)

mysqldump -uMonUser -hMonHost -p Mabase > dump.sql


Pour recharger une sauvegarde vers une base de données

mysql -uMonUser -hMonHost -p Mabase < dump.sql

Pour dumper toutes les bases de données du serveur à l’aide d’un script Shell

créer un fichier masauvegarde.sh dans lequel on met le code suivant :

#!/bin/bash
# Generation de la date du jour
CURRENTDATE=$(date +%d%m%Y)
# Definir le chemin du repertoire vers lequel on envoie la sauvegarde
DIR_LOCAL_SQL="/mon/repertoiredesauvegarde"
#---------------------------------------#
# Paramétrage de la connection MySQL #
#---------------------------------------#
# Nom du serveur, ne pas modifier
MACHINE="$(hostname)"
#---------------------------------------#
# PARTIE A PERSONNALISER AVEC VOS INFOS
#---------------------------------------#
# Nom de l'utilisateur qui lance le backup, remplacer MonUser par l'utilisateur qui a tous les droits sur les bases
user="MonUser"
# Machine sur laquelle on se connecte, remplacer MonHost par le serveur mysql, souvent localhost
host="MonHost"
# Mot de passe de l'utilisateur de backup, remplacer MonMotdePasse par le mot de passe de l'utilisateur
pass="MonMotDePasse"
#----------------------------------------#
# FIN DE LA PARTIE A PERSONNALISER AVEC VOS INFOS
#----------------------------------------#
# Outil de dump
MYSQLDUMP=mysqldump
#Outil de check
MYSQLCHECK=mysqlcheck
# Options passées à MysqlDUMP
OPTIONS="--add-drop-table --complete-insert"
# On construit la liste des bases de données
BASES="$(mysql -u $user -h $host -p$pass -Bse 'show databases')"
# On lance le dump des bases
for db in $BASES
do
# On lance un check et une analyse pour chaque base de donnée
$MYSQLCHECK -u $user -h $host -p$pass -c -a $db
# On lance un mysqldump pour chaque base de donnée
$ MYSQLDUMP -u$user -h$host -p$pass $OPTIONS $db > $DIR_LOCAL_SQL"/"$MACHINE"-"$db"-"$CURRENTDATE".sql";
echo $MACHINE"-"$db"-"$CURRENTDATE".sql";
done
# compression de l'archive du jour contenant tous les fichiers de dump dans le repertoire de destination
FICHIER_BACKUP=$CURRENTDATE"-sql.tar.gz"
cd $DIR_LOCAL_SQL
tar -cvzf $DIR_LOCAL_SQL"/"$FICHIER_BACKUP *

Pour que la sauvegarde s’éxécute, lancer dans ssh la commande :

sh masauvegarde.sh