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.
David says
Misschien ook tutorial maken hoe je mariadb upgrade omdat handmatig gedaan moeten worden