MySQL of MariaDB backups creëren of herstellen

Estimated reading time: 1 min

Introductie

Dit artikel helpt je met het creëren en herstellen van lokale MySQL of MariaDB backups van al jouw databases. We zullen de cron gebruiken om de backups in te plannen.

Vereisten

Je hebt een /root/.my.cnf bestand nodig met credentials, zodat de user root kan inloggen op MySQL/ MariaDB met voldoende rechten zonder het invoeren van een wachtwoord. Bijvoorbeeld /root/.my.cnf contents:

[client]
user=root
password=mysecretpassword

Vergeet niet om de rechten te wijzigen:

sudo chmod 600 /root/.my.cnf

Test of het werkt met:

PING=$(sudo mysqladmin ping 2>/dev/null)
if [ "$PING" != "mysqld is alive" ]; then
  clear && echo 'Error: Unable to connect to MySQL Server!'
else
  clear && echo 'Successfully connected to the MySQL server!'
fi

Installeer script

sudo wget -O /usr/local/sbin/backup_mysql.sh https://git.snel.com/snelcom/backup-mysql/raw/branch/master/backup_mysql.sh
sudo chmod 700 /usr/local/sbin/backup_mysql.sh

Installeer cronjob

De onderstaande commando voegt een cronjob toe aan de root die het script dagelijks om 0:10 uur zal uitvoeren. Pas dit indien nodig aan.

(sudo crontab -l 2>/dev/null; sudo echo '10 0 * * * test -x /usr/local/sbin/backup_mysql.sh && /usr/local/sbin/backup_mysql.sh') | sudo crontab -

Herstel database

We gaan ervan uit dat je mytestdb wilt hestellen vanuit je backups die je hebt gemaakt op 20190121-1540:

DB='mytestdb'
BACKUPDIR='/var/backup/mysql/20190121-1540'
sudo mysql -e "CREATE DATABASE IF NOT EXISTS ${DB}"
sudo -i bash -c 'for table in ${BACKUPDIR}/${DB}/*; do gunzip -c $table | mysql ${DB}; done'

Conclusie

Jouw dagelijkse MySQL- of MariaDB-backups in platte tekst worden opgeslagen in / var / backup / mysql. Dit zal enorm helpen wanneer je een enkele tabel, een enkele database of alle databases moet herstellen.

Was this article helpful?
Dislike 0
Views: 30

Lees Interacties

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *