Backing up a MariaDB database
MariaDB provides a tool called mariadb-dump
for backup up a database to an SQL file.
I struggled for a while to get it working, this is what I had to do (in the following examples the user is called foo
and the database is called bar
).
When I first tried running it I got the error
mariadb-dump: unknown option '--auto-rehash'
On Arch Linux the default configuration contains a setting auto-rehash
which confuses mariadb-dump
(as it doesn’t recognise it).
It is set in the file /etc/my.cnf.d/client.conf
.
Simply commenting out the line auto-rehash
fixes this (I’m not sure why this setting is a default so I uncommented it after making the backup).
I then tried backing up my database again but got the error message
"Access denied for user 'foo'@'localhost' to database 'bar'" when using LOCK TABLES
This is because I hadn’t given my user the LOCK TABLES
privilege (run this command as the root user in the mariadb CLI):
GRANT LOCK TABLES ON bar.* TO 'foo'@'localhost';
I also need to have the SELECT
privilege in order to lock it (but I had set that already).
The command to run to make a backup (to a file called backup.sql
) is:
mariadb-dump -u foo -p bar > backup.sql