Tag Archives: MariaDB

Maintenance: Backups and Switching to MariaDB

DB Swap

DB Swap

Still waiting… So here’s a technology post…

I have been managing WordPress site on this Raspberry Pi for a while now and I have been diligent in upgrading everything as it comes out. It is a little bit risky, because this is in effect a PROD server, but I have been taking regular backups that go onto a RAID5 NAS. If anything catastrophic happens, I *should* be able to recover.

As we are waiting for the arrival of the baby, I had a chance to do a couple of house keeping items I have been putting off:

  • Resize the main partition on the USB key – I copied it from the SD card when I swapped over from 16G to 32G
  • Update MySQL – It’s been bugging me to build something when I run pacu (my aliased pacman -Syu with AUR)
  • Run a monthly image backup
  • Run a content xml backup

I budgeted that the time for this maintanence window to be something like an hour. The backup image usually takes 20 minutes and the resize and content backup would have taken 5 minutes or so. The update to MySQL was the big unknown for me as I had no idea how to build a package or really how AUR works. Usually, I would do work like this in the middle of the night, probably before posting something so that there is no traffic. But seeing as that I have time now and I will soon need all of the sleep I can get, I figured this was a good a time as any. So I checked the stats and it seemed like nothing really happening in terms of people looking at the site, and away I went!

After doing the backups and resizing, I took a look at the MySQL update. I tried using PKGBUILD to get it running, but I seem to be hitting roadblocks every now and then that stop the build. It was a little frustrating having things come up and settings you have to change to make it work for the Raspberry Pi (arm). After doing some searching, it turns out that ArchLinux changed their implementation of MySQL to MariaDB and the usual MySQL packages got banished to AUR. See announcement here and some compatibility notes here.

Skimming the incompatibilities, it didn’t seem like it affected me as I run a pretty stock set of configurations for WordPress. The instructions seem easy enough and I am glad that they posted it.

# systemctl stop mysqld
# pacman -S mariadb libmariadbclient mariadb-clients
# systemctl start mysqld
# mysql_upgrade -p

I upgraded the MySQL to MariaDB without much hassle. I just had to diff the my.cnf file and copy some tweaks/settings from the old file to the new my.cnf.

All in all, it was a better and shorter maintenance outage than expected.