Før eller siden, er jeg ked af at sige, er der sikkert en eller anden trold, der enten via SQL injection, eller bare er heldig nok til at få adgang til et eller andet på dit system, der vil forsøge at slette hvad han/hun nu kan komme afsted med. De typiske steder er MySQL når man snakker blog miljøer. Somsagt er SQL injection en måde men f.eks også måden man får adgang til din CMS admin del, der kan gøre du f.eks lige pludselig står og mangler poster, kommentarer m.fl. fra din blog.

Der er da heldigvis råd. Et af disse er at benytte mysqldump - da det er et værktøj der let kan lave et, som navnet siger, dump af dine databaser. Det er også let at integrere i et script og dermed hurtigt via f.eks crontab få lavet en automatisk backup løsning.

Har man ikke mod på selv at skrive et script, findes der flere derude i både gratis løsninger og de mere forkromede betalings løsninger. Et af disse tilbud er AutoMySQLBackup. Jeg bruger selv dette script. Det er gratis, og du er kørende på 2 minutter.

Du kan selvfølgelig selv via konfigurationen, der foregår i scriptet, fortælle om der skal backes en eller flere databaser op eller alle. Scriptet kompresser selvfølgelig dumpet og arbejder ud fra en directory struktur der hedder daily, weekly samt monthly. Som en ekstra option kan man også få lavet et katalog der hedder latest for seneste backup.

Somsagt download scriptet via ovenstående link - og hent det ind i din favorit editor - og det må vist være VI og konfigurer følgende til dine behov.

# Username to access the MySQL server e.g. dbuser
USERNAME=dbuser
# Username to access the MySQL server e.g. password
PASSWORD=password
# Host name (or IP address) of MySQL server e.g localhost
DBHOST=localhost
# List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3"
DBNAMES="all"
# Backup directory location e.g /backups
BACKUPDIR="/var/backup/mysql"
# Mail setup
MAILCONTENT="quiet"

Det næste er blot at tilføje en linie i din crontab; crontab -e

00 8   * * *   root    /opt/automysqlbackup.sh >/dev/null 2>&1

Og du er næsten klar; Vi bor jo i Danmark og default database karaktersæt er Latin1 - det betyder dine ÆØÅ karakterer ser mærkelige ud når du importerer igen derfor; For at finde tilgængelige karaktersæt på din VPS så gør følgende;

ls -ltr /usr/share/mysql/charsets/

Hent automysqlbackup.sh ind i en editor og find mysqldump eller mysql (hvis du benytter den option om at dumpe ALL databaser). og tilføj

--default-character-set=danish

I mit tilfælde havde jeg dog ingen Danish.xml liggende nogen steder, og flere sites nævner at man over version 4 skal benytte latin1 og så indeholder collation danske regler. Dvs. serveren eller demonen skal startes som

mysqld --default-character-set=latin1 --default-collation=latin1_danish_ci

Og så skal automysqlbackup.sh ikke ændres. Mit tilfælde er jeg kører interworx og her gøres følgende. Editer

 /home/interworx/etc/my.cnf og find ud af at karakter sæts er lokaliseret i /home/interworx/var/share/mysql/ og her findes danish - sæt det til det genstart, et voila.