Why mysqldump Says "Deprecated Program Name" (and How to Fix Your Backup Script)

Why mysqldump Says "Deprecated Program Name" (and How to Fix Your Backup Script)

I ran the backup script from our own MySQL to R2 backup guide on a server the other day and got this in the output:

mysqldump: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb-dump' instead

The backup still ran. It still worked. But that warning is worth paying attention to, and if you're running MariaDB rather than actual MySQL, there's a good chance you'll see it too. Here's what's going on.

You might be running MariaDB without knowing it

This trips people up more than it should. On Ubuntu, running apt install mysql-server doesn't always give you MySQL. Depending on the release and repository, it can install MariaDB instead, since the two projects share history and MariaDB has long positioned itself as a compatible replacement. Most people never notice, because the commands, the config file locations, and the basic behavior are close enough that everything just works. Check which one you're actually running:

mysql --version

If the output contains the word "MariaDB," that's your answer. A real MySQL install won't say that.

Why the command is changing

MariaDB has been quietly renaming its own tools for a few years now. According to MariaDB's own documentation, starting with version 10.5, the actual client became mariadb-dump, with mysqldump kept around as a symlink purely for backward compatibility. From version 11.0.1 onward, that symlink is deprecated, and it's already been removed entirely from MariaDB's official Docker image. The same pattern applies to the main mysql client, which is becoming mariadb. So depending on exactly how MariaDB was installed, you might just get a warning today, or the old command might not exist at all anymore. I've seen both, and it really does depend on the install method, not just the version number.

Updating the backup script

If you followed our backup guide and you're on MariaDB, the only real change to make is swapping mysqldump for mariadb-dump in the script. Every flag still means the same thing, so the command becomes mariadb-dump --single-transaction --quick --routines --triggers -u backup_user -p'yourpassword' your_database, piped to gzip and rclone exactly as before.

Why I'd fix this now instead of waiting

A deprecation warning doesn't stop your backup from running today. That's exactly what makes it easy to ignore. But if this script lives in a cron job or a systemd timer, nobody's watching it run day to day, the same way we talked about in the mysqldump authentication guide. A warning nobody reads and a silent failure look identical from the outside, right up until the day you actually need a backup and discover the command stopped existing months ago. If you're on Docker specifically, check this sooner rather than later. Some official MariaDB images have already dropped the old command name entirely, so a script that quietly warns on a regular VPS install can fail outright inside a container.

One command to check your whole setup

Before changing anything, confirm what actually exists on your system with which mariadb-dump mysqldump. If both show up, you're on a version that still keeps the compatibility symlink, and you have time. If only mariadb-dump shows up, your scripts need updating now, not eventually.

I verified this against MariaDB's own official documentation as of August 2026.

Comments 0

Be the first to comment.

Leave a comment