Voici une méthode efficace pour effectuer une sauvegarde avec rsync qui permet une synchronisation distante, que nous allons rendre périodique. L’avantage de la synchronisation est de permettre la mise en place de systèmes plus réguliers de sauvegarde puisque seule l’information modifiée sera remplacée sur l’emplacement de sauvegarde.
Activer RSYNC sur le serveur qui contient les données à sauvegarder (ns1):
Pour activer le démon de synchronisation rsync sous UBUNTU 16.04:
sudo systemctl enable rsync
sudo service rsync start
Pour activer la synchronisation sous UBUNTU 14.04 avec rsync, aller modifier la ligne dans /etc/default/rsync ici:
RSYNC_ENABLE=true
Ceci n’est pas à faire sous Ubuntu:
Vous voudrez probablement lancer le démon rsync depuis inetd. Pour cela, vous devez d’abord ajouter le service rsync dans le fichier /etc/services (s’il n’y est pas déjà), comme ceci :
nano /etc/services
rsync 873/tcpPour lancer le démon avec inetd, ajoutez ce qui suit à votre fichier /etc/inetd.conf :
nano /etc/inetd.conf
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemonN’oubliez pas d’envoyer à inetd un signal HUP pour lui dire de relire son fichier de configuration après que vous l’avez modifié.
ps -faux
kill -HUP pid
(pour inetd)
Ensuite, créez le fichier de configuration /etc/rsyncd.conf:
nano /etc/rsyncd.conf
log file = /var/log/rsync.log [photos] uid = web1 gid = client1 path = /var/www/clients/client1/web1/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup photos.infolaf.net read only = true auth users = test secrets file = /etc/rsyncd.scrt [wordpress] uid = web2 gid = client1 path = /var/www/clients/client1/web2/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup wordpress.infolaf.net read only = true auth users = test secrets file = /etc/rsyncd.scrt [piwik] uid = web3 gid = client1 path = /var/www/clients/client1/web3/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup piwik.infolaf.net read only = true auth users = test secrets file = /etc/rsyncd.scrt [nuage] uid = web4 gid = client1 path = /var/www/clients/client1/web4/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup nuage.infolaf.net read only = true auth users = test secrets file = /etc/rsyncd.scrt [magasin] uid = web5 gid = client1 path = /var/www/clients/client1/web5/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup store.infolaf.net read only = true auth users = test secrets file = /etc/rsyncd.scrt [webmail] uid = web6 gid = client1 path = /var/www/clients/client1/web6/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup webmail.infolaf.net read only = true auth users = test secrets file = /etc/rsyncd.scrt [w3pw] uid = web7 gid = client1 path = /var/www/clients/client1/web7/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup mdp.infolaf.net read only = true auth users = test secrets file = /etc/rsyncd.scrt [virtualbox] uid = web10 gid = client1 path = /var/www/clients/client1/web10/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup virtualbox.reseau.maison read only = true auth users = test secrets file = /etc/rsyncd.scrt [listes] uid = web14 gid = client1 path = /var/www/clients/client1/web14/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup virtualbox.reseau.maison read only = true auth users = test secrets file = /etc/rsyncd.scrt [blog] uid = web16 gid = client1 path = /var/www/clients/client1/web16/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup blog.infolaf.ca read only = true auth users = test secrets file = /etc/rsyncd.scrt [courriel] uid = vmail gid = vmail path = /var/vmail hosts allow = 192.168.0.11 #ici votre IP comment = Backup courriel read only = true auth users = test secrets file = /etc/rsyncd.scrt [mysql] uid = infolaf gid = infolaf path = /home/infolaf/backups/mysql_DB hosts allow = 192.168.0.11 #ici votre IP comment = Backup mysql read only = true auth users = test secrets file = /etc/rsyncd.scrt [scripts_NS1] uid = infolaf gid = infolaf path = /home/infolaf/scripts/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup scripts_NS1 read only = true auth users = test secrets file = /etc/rsyncd.scrt [rsync_NS1] uid = root gid = root path = /etc/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup rsync_NS1 read only = true auth users = test secrets file = /etc/rsyncd.scrt [bind_NS1] uid = root gid = root path = /etc/bind hosts allow = 192.168.0.11 #ici votre IP comment = Backup bind_NS1 read only = true auth users = test secrets file = /etc/rsyncd.scrt #[crontab_NS1] #uid = infolaf #gid = infolaf #path = /home/infolaf #hosts allow = 192.168.0.11 #ici votre IP #comment = Backup crontab_NS1 #read only = true #auth users = test #secrets file = /etc/rsyncd.scrt [www-full] uid = root gid = root path = /var/www/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup full path of www disk read only = true auth users = test secrets file = /etc/rsyncd.scrt
Le fichier secret /etc/rsyncd.scrt devra contenir dans cet exemple les permissions 640:
personne1:motdepasse1
personne2:motdepasse2
nano /etc/rsyncd.scrt
test:votremotdepasse
chmod 640 /etc/rsyncd.scrt
Vous pouvez maintenant lancer rsync:
service rsync start
Le read only activé permet de protéger vos fichiers en écriture. Si pour une quelconque raison, vous souhaitez enlever cet attribut, revoyez alors toute la configuration de RSYNC.
Mettre l’utilisateur www-data permet d’être sûr que RSYNC aura un accès en lecture si vos fichiers de sauvegarde concernent des sites sur apache sans ISPConfig.
Toujours pour des raisons de sécurité, il est moins souple mais plus sage de n’indiquer que les ips des clients autorisés à faire une sauvegarde dans l’attribut hosts allow.
J’ai créé le fichiers script suivant (backup_mysql.sh) sur ns1 qui va servir à faire la sauvegarde des bases de données MySQL des sites web de mon serveur Apache :
Le scripts va extraire les bases de données et en faire une sauvegarde vers un répertoire sur ns1. Lorsque rsync sera lancé par la machine physique host1
, les bases de données seront sauvegardées en même temps que les sites web.
on redevient l’usager infolaf (pas su surtout)
exit
mkdir -p /home/infolaf/backups/mysql_DB
mkdir /home/infolaf/scripts/
nano /home/infolaf/scripts/backup_mysql.sh
#mysql> -uroot -p<votremotdepasse> -e FLUSH TABLES WITH READ LOCK; mysqldump -uroot -p<votremotdepasse> --databases c1photos > /home/infolaf/backups/mysql_DB/c1photos.sql mysqldump -uroot -p<votremotdepasse> --databases dbispconfig > /home/infolaf/backups/mysql_DB/dbispconfig.sql mysqldump -uroot -p<votremotdepasse> --databases c1wordpress > /home/infolaf/backups/mysql_DB/c1wordpress.sql mysqldump -uroot -p<votremotdepasse> --databases c1blog > /home/infolaf/backups/mysql_DB/c1blog.sql mysqldump -uroot -p<votremotdepasse> --databases c1roundcubemail > /home/infolaf/backups/mysql_DB/c1roundcubemail.sql mysqldump -uroot -p<votremotdepasse> --databases c1piwik > /home/infolaf/backups/mysql_DB/c1piwik.sql mysqldump -uroot -p<votremotdepasse> --databases c1oscommerce > /home/infolaf/backups/mysql_DB/c1oscommerce.sql mysqldump -uroot -p<votremotdepasse> --databases c1owncloud > /home/infolaf/backups/mysql_DB/c1owncloud.sql mysqldump -uroot -p<votremotdepasse> --databases c1w3pw > /home/infolaf/backups/mysql_DB/c1w3pw.sql mysqldump -uroot -p<votremotdepasse> --databases c1dada > /home/infolaf/backups/mysql_DB/c1dada.sql #mysql> -uroot -p<votremotdepasse> -e UNLOCK TABLES; echo "Bonjour," echo "" echo "Ce message vous confirme que les bases de donnees MySQL de vos sites web sont bien sauvegardee localement dans ~/backups/mysql_DB/" echo "" echo "La sauvegarde sera complete lorsque host1 lancera son script de sauvegarde des sites web" echo "" echo "Message produit par le script de sauvegarde execute par CRON sur infolaf@ns1.infolaf.net"
chmod 777 /home/infolaf/scripts/backup_mysql.sh
et on ajoute les commandes suivantes dans crontab :
crontab -e
# m h dom mon dow command
MAILTO=root
00 00 * * 0-7 sh /home/infolaf/scripts/backup_mysql.sh
La partie cliente (sur le serveur physique host1
)
On fait la même chose pour faire des sauvegardes planifiées sur host1
:
Pour activer la synchronisation avec rsync, aller modifier la ligne dans /etc/default/rsync ici:
RSYNC_ENABLE=true
Ensuite, créez le fichier de configuration /etc/rsyncd.conf:
nano /etc/rsyncd.conf
[scripts_HOST1] uid = nas gid = nas path = /home/nas/scripts hosts allow = 192.168.0.11 #ici votre IP comment = Backup scripts_HOST1 read only = true auth users = test secrets file = /etc/rsyncd.scrt [rsync_HOST1] uid = root gid = root path = /etc/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup rsync_HOST1 read only = true auth users = test secrets file = /etc/rsyncd.scrt [bind_HOST1] uid = root gid = root path = /etc/bind hosts allow = 192.168.0.11 #ici votre IP comment = Backup bind_HOST1 read only = true auth users = test secrets file = /etc/rsyncd.scrt [samba_HOST1] uid = root gid = root path = /etc/samba/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup samba_HOST1 read only = true auth users = test secrets file = /etc/rsyncd.scrt [nfs_HOST1] uid = root gid = root path = /etc/ hosts allow = 192.168.0.11 #ici votre IP comment = Backup nfs_HOST1 read only = true auth users = test secrets file = /etc/rsyncd.scrt [mediatomb_HOST1] uid = root gid = root path = /etc/mediatomb hosts allow = 192.168.0.11 #ici votre IP comment = Backup mediatomb_HOST1 read only = true auth users = test secrets file = /etc/rsyncd.scrt
Le fichier secret /etc/rsyncd.scrt devra contenir dans cet exemple les permissions 640:
personne1:motdepasse1
personne2:motdepasse2
nano /etc/rsyncd.scrt
test:votremotdepasse
chmod 640 /etc/rsyncd.scrt
Vous pouvez maintenant lancer rsync:
service rsync start
Il est très simple une fois que le serveur est configuré d’effectuer une synchronisation :
exemple : rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::nuage/ /media/nas1/Backups/www/nuage rsync -avz --stats --ignore-errors xx.xx.xx.xx::backup_site1/ /mesbackups/site1 xx.xx.xx.xx est l’ip distante
Créer les scripts pour l’exécution de la commande de sauvegarde automatique :
mkdir -p /home/nas/scripts/rsync/
nano /home/nas/scripts/rsync/backup_mail-ns1.sh
echo "Bonjour," echo "" echo "Ce message vous confirme que les courriels sont bien sauvegardee localement dans /media/nas1/Backups/vmail/" echo "" echo "" echo "" echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison" echo "" rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::courriel/ /media/nas1/Backups/vmail/
chmod 777 /home/nas/scripts/rsync/backup_mail-ns1.sh
nano /home/nas/scripts/rsync/backup_web-ns1.sh
echo "Bonjour," echo "" echo "Ce message vous confirme que les sites web sont bien sauvegardee localement dans /media/nas1/Backups/<votresiteweb>/" echo "" echo "" echo "" echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison" echo "" #rsync -avz --stats --delete --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.100::web/ /media/nas1/Backups/www rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::nuage/ /media/nas1/Backups/www/nuage rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::piwik/ /media/nas1/Backups/www/piwik rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::photos/ /media/nas1/Backups/www/photos rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::magasin/ /media/nas1/Backups/www/magasin rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::wordpress/ /media/nas1/Backups/www/wordpress rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::blog/ /media/nas1/Backups/www/blog rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::webmail/ /media/nas1/Backups/www/webmail rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::w3pw/ /media/nas1/Backups/www/w3pw rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::virtualbox/ /media/nas1/Backups/www/virtualbox rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::listes/ /media/nas1/Backups/www/listes rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::www-full/ /media/nas2/Backups/www-full_path
chmod 777 /home/nas/scripts/rsync/backup_web-ns1.sh
nano /home/nas/scripts/rsync/backup_mysql-ns1.sh
echo "Bonjour," echo "" echo "Ce message vous confirme que les bases de donnees MYSQL sont bien sauvegardee localement dans /media/nas1/Backups/MySQL_db/" echo "" echo "" echo "" echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison" echo "" rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::mysql/ /media/nas1/Backups/MySQL_db
chmod 777 /home/nas/scripts/rsync/backup_mysql-ns1.sh
nano /home/nas/scripts/rsync/backup_scripts.sh
echo "Bonjour," echo "" echo "Ce message vous confirme que les scripts de NS1 sont bien sauvegarde dans /media/nas1/Backups/Scripts/NS1" echo "Ce message vous confirme que les scripts de HOST1 sont bien sauvegarde dans /media/nas1/Backups/Scripts/HOST1" echo "" echo "" echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison" echo "" echo "scripts_NS1" rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::scripts_NS1/ /media/nas1/Backups/Scripts/NS1 echo "" echo "scripts_HOST1" rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::scripts_HOST1/ /media/nas1/Backups/Scripts/HOST1
chmod 777 /home/nas/scripts/rsync/backup_scripts.sh
nano /home/nas/scripts/rsync/backup_config.sh
echo "Bonjour,"
echo ""
echo "Ce message vous confirme que les fichiers de configuration de NS1 sont bien sauvegardes dans /media/nas1/Backups/Config/NS1"
echo "Ce message vous confirme que les fichiers de configuration de HOST1 sont bien sauvegardes dans /media/nas1/Backups/Config/HOST1"
echo ""
echo ""
echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison"
echo ""
#rsync -avz --stats --delete --exclude='lost+found/' --include='/bind/***' --exclude='**'
echo ""
echo "rsync_NS1"
rsync -avz --stats --delete --exclude='lost+found/' --include='rsyncd.conf' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::rsync_NS1/ /media/nas1/Backups/Config/NS1/rsync
echo ""
echo "rsync_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='rsyncd.conf' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::rsync_HOST1/ /media/nas1/Backups/Config/HOST1/rsync
echo ""
echo "bind_NS1"
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::bind_NS1/ /media/nas1/Backups/Config/NS1/bind
echo ""
echo "bind_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::bind_HOST1/ /media/nas1/Backups/Config/HOST1/bind
echo ""
echo "samba_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='smb.conf' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::samba_HOST1/ /media/nas1/Backups/Config/HOST1/
echo ""
echo "nfs_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='exports' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::nfs_HOST1/ /media/nas1/Backups/Config/HOST1/
echo ""
echo "mediatomb_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='config.xml' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::mediatomb_HOST1/ /media/nas1/Backups/Config/HOST1/
chmod 777 /home/nas/scripts/rsync/backup_config.sh
On créer le fichier de mot de passe d’exécution automatique. Le mot de passe est celui indiqué dans le fichier /etc/rsyncd.scrt
nano /home/nas/scripts/rsync/rsync_pass
votremotdepasse
on change les permissions du fichier.
chmod 640 /home/nas/scripts/rsync/rsync_pass
et on ajoute les commandes suivantes dans crontab :
crontab -e
# m h dom mon dow command
MAILTO=postmaster@reseau.maison
15 00 * * 0-7 sh /home/nas/scripts/rsync/backup_mysql-ns1.sh
20 00 * * 0-7 sh /home/nas/scripts/rsync/backup_mail-ns1.sh
30 00 * * 0-7 sh /home/nas/scripts/rsync/backup_web-ns1.sh
45 00 * * 0-7 sh /home/nas/scripts/rsync/backup_scripts.sh
50 00 * * 0-7 sh /home/nas/scripts/rsync/backup_config.sh
Sauvegarde des comptes courriels (GMAIL-YAHOO) – Sur serveur virtuel ns1
Pré-requis: créer pour chacun des comptes que l’on désire sauvegarder un compte sur un autre serveur IMAP vers lequel la duplication s’effectuera.
Installer les dépendances pour imapsync
apt-get install libdate-manip-perl libterm-readkey-perl libterm-readkey-perl libdigest-hmac-perl libdate-manip-perl libmail-imapclient-perl libio-socket-ssl-perl liburi-perl libfile-copy-recursive-perl libio-tee-perl
apt-get install makepasswd rcs perl-doc libmail-imapclient-perl make git-core git-doc git-svn git-gui gitk
Ensuite, télécharger le code source le plus récent à partir du projet github vers votre répertoire /tmp:
cd /tmp
git clone git://github.com/imapsync/imapsync.git
Finalement, naviguer vers le répertoire téléchargé et installer imapsync:
cd imapsync
sudo make install
Si vous avez l’erreur : Can’t locate Unicode/String.pm
voir INSTALL et taper :
perl -MCPAN -e "install Unicode::String"
Added option --logfile
. Default is like LOG_imapsync/YYYY_MM_DD_HH_MM_SS_user2.txt
J’ai créé les fichiers scripts suivants sur ns1 qui vont servir à faire les sauvegardes de mes comptes courriel importants avec le logiciel imapsync.
backup_gmail.sh
backup_radio-canada.sh
backup_yahoo.sh
on redevient l’usager infolaf (pas root surtout)
nano /home/infolaf/scripts/backup_gmail.sh
imapsync --host1 imap.gmail.com --user1 votreemail@gmail.com --password1 --host2 imap.infolaf.net --user2 backup_votreemail_gmail@reseau.maison --password2 --syncinternaldates --ssl1 --ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --exclude "All Mail|Spam|Trash" --allowsizemismatch --addheader --delete2 --nolog
chmod 777 /home/infolaf/scripts/backup_gmail.sh
nano /home/infolaf/scripts/backup_radio-canada.sh
imapsync --host1 imap.gmail.com --user1 votreemail@radio-canada.ca --password1 --host2 imap.infolaf.net --user2 backup_radio-canada@reseau.maison --password2 --syncinternaldates --ssl1 --ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --exclude "All Mail|Spam|Trash" --allowsizemismatch --addheader --delete2 --nolog
chmod 777 /home/infolaf/scripts/backup_radio-canada.sh
nano /home/infolaf/scripts/backup_yahoo.sh
imapsync --host1 imap.mail.yahoo.com --user1 votreemail@yahoo.fr --password1 --host2 imap.infolaf.net --user2 backup_votreemail_yahoo@reseau.maison --password2 --syncinternaldates --ssl1 --ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --exclude "All Mail|Spam|Trash" --allowsizemismatch --addheader --delete2 --nolog
chmod 777 /home/infolaf/scripts/backup_yahoo.sh
et on ajoute les commandes suivantes dans crontab :
#Si la clause > log n’est pas spécifiée, cron enverra automatiquement un mail de confirmation. Pour éviter cela il suffit de spécifier > /dev/null
crontab -e
# m h dom mon dow command
MAILTO=root
00 00 * * 0-7 sh /home/infolaf/scripts/backup_mysql.sh
00 04 * * 1 sh /home/infolaf/scripts/backup_gmail.sh
30 04 * * 1 sh /home/infolaf/scripts/backup_yahoo.sh
00 05 * * 1 sh /home/infolaf/scripts/backup_radio-canada.sh
Information de référence:
Restauration et sauvegarde MySQL:
Sauvegarde des bases de données de MySQL:
mysqldump -uroot -p --databases c1photos > /home/infolaf/backups/mysql_DB/c1photos.sql
Restaurer une sauvegarde dans le format SQL :
phpmyadmin ne permet pas d’importer des bases de données de plus de 2M. Un moyen de contourner ce problème est de téléverser avec filezilla cette sauvegarde dans /tmp du serveur et ensuite d’utiliser la commande suivante :
mysql -uroot -p c1piwik < /tmp/c1piwik.sql
Pour restaurer une sauvegarde enregistrée par mysqldump composée d’énoncés SQL, utiliser ce fichier comme source (input) pour le client mysql. Si le fichier de sauvegarde a été créé par mysqldump avec l’option –all-databases ou –databases, il contient donc déjà les commandes CREATE DATABASE et USE statements et il n’est donc pas nécessaire de spécifier un nom de base de données pour charger les données:
mysql -p < /media/nas1/Backups/MySQL_db/drupal.sql
Alternativement, du shell mysql utiliser la syntaxe suivante:
mysql> source /media/nas1/Backups/MySQL_db/drupal.sql
Si le fichier de sauvegarde ne contient pas la commande CREATE DATABASE et USE statements, il faut alors d’abord créer la base de données en premier:
shell> mysqladmin create db1
Ensuite, il suffit de spécifier la base de données au moment de la restaurer:
shell> mysql db1 < dump.sql
Alternativement du shell mysql, créer la base de données et selectionner celle-ci comme base de données par défaut et restaurer ensuite les données:
mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql> source dump.sql
Si vous avez perdu le mot de passe Root de votre serveur MySQL, voici une petite technique pour en mettre un nouveau sans devoir tout détruire.
Connectez vous en SSH sur votre serveur
Arrêtez proprement votre base de données avec un
/etc/init.d/mysqld stop
Lancez Mysql en « safe mode »
mysqld_safe --skip-grant-tables &
Lancez ensuite une session Mysql
mysql
Et changez votre password avec la commande SQL suivante :
update mysql.user set password = password('VOTRENOUVEAUMOTDEPASSE') where user = 'root'
Quittez mysql:
exit
Il suffira ensuite de « tuer » le process Mysql_safe avec un petit
ps -ax
(notez le PID. On va dire que c’est 12345)
killall -9 12345
Et pour finir, relancez MySQL proprement :
/etc/init.d/mysqld start