| Dumps a live InnoDB database with default locking | Add --single-transaction — a consistent snapshot (START TRANSACTION WITH CONSISTENT SNAPSHOT) that doesn't block writers. It auto-disables --lock-tables (the two are mutually exclusive) |
Assumes --single-transaction makes the whole dump consistent | Only InnoDB tables are consistent under it; non-transactional tables (MyISAM/Aria/MEMORY) can still change mid-dump. And DDL on a dumped table during the dump breaks it — no ALTER/CREATE/DROP/TRUNCATE on those tables while it runs |
| Expects stored procedures/functions/events in the dump | --routines (-R) and --events (-E) are off by default — add them. --triggers is on by default. The classic "my dump is missing my stored procedures" |
| Expects a readable / diffable dump (one INSERT per row) | --extended-insert is on by default (multi-row INSERTs). For version-control-friendly fixtures use --skip-extended-insert, usually with --complete-insert (column names) and --compact (drop boilerplate) |
Restores by "running" the dump with mariadb-dump or double-clicking it | The dump is a plain SQL script — restore by piping it into the mariadb client: mariadb dbname < dump.sql. (mariadb-dump only produces dumps, it never loads them) |
Reaches for --source-data / --dump-replica (to capture replication coordinates) | Those names don't exist in MariaDB. Use `--master-data[=1 |
mariadb-dump dbname and expects CREATE DATABASE / USE in the output | A plain database name emits neither. Use --databases dbname (-B) or --all-databases (-A) to include CREATE DATABASE/USE |
| Builds schema-only or data-only dumps with shell hacks | --no-data (-d) = structure only; --no-create-info (-t) = data only; --ignore-table-data=db.tbl = structure only for one table |
| Generates a seed dump that fails on re-import because rows already exist | --replace emits REPLACE INTO; --insert-ignore emits INSERT IGNORE — either makes re-seeding idempotent. Both off by default |
| Dumps binary/BLOB columns and gets corruption through pipes or editors | Add --hex-blob to emit BINARY/BLOB/BIT values as 0x… hex literals |
| Dumps from a current server expecting an older client to restore it | The dump opens with a sandbox-mode line that older clients reject, and --opt/--extended-insert assume a modern target. For an old target use --skip-opt and import with a current mariadb client. --compatible= only adjusts SQL mode — it does not convert data types |