MySQL

type: mysql — uses mysqldump to produce a logical dump.

For MariaDB use type: mariadb instead — it prefers mariadb-dump and falls back to mysqldump.

Prerequisites

  • mysqldump must be installed on the snapr host and available in PATH.
  • Install via your distro's mysql-client / default-mysql-client package.
  • The backup user typically needs at minimum SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER, and (when dumping replicas / using --single-transaction) PROCESS.

Fields

FieldTypeRequiredNotes
typemysqlyes
hoststringyes*required unless socket is set. Defaults to 127.0.0.1 if both unset.
portintnodefault 3306
socketstringnoUNIX socket path (alternative to host/port)
usernamestringnopassed as -u
passwordstringnopassed via MYSQL_PWD env var, never on cmdline. Use env:
databasestringyes*required unless allDatabases: true
allDatabasesboolnodump every database on the server (--all-databases)
tablesstring[]noonly dump these tables from database
excludeTablesstring[]nopassed as --ignore-table=<db>.<table> (single-database mode only)
extraParamsmap<str,str>noextra mysqldump flags

Example — single database

sources:
  - type: mysql
    host: db.internal
    port: 3306
    username: backup
    password: env:MYSQL_PASSWORD
    database: app
    excludeTables:
      - sessions
    extraParams:
      single-transaction: ''
      quick: ''

Example — all databases via socket

sources:
  - type: mysql
    socket: /var/run/mysqld/mysqld.sock
    username: backup
    password: env:MYSQL_PASSWORD
    allDatabases: true

Notes

  • extraParams keys are prefixed with --. Use an empty string value for boolean flags.
  • excludeTables is ignored when allDatabases: true is set.