OS Manuals

/usr/bin/mariadb-migrate-config-file

The MariaDB open source relational database

From mariadb-12.3 12.3.3-r5 (enterprise-packages), captured 2026-11-08 by running mariadb-migrate-config-file --help (exit 0). permalink

/usr/bin/mariadb-migrate-config-file from 12.3.3-MariaDB, client 1.0 for Linux (x86_64)
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Display or change unrecognized MariaDB options in MariaDB/MySQL
configuration files. This is useful when planning an upgrade from
MySQL to MariaDB or to check if there are some unsupported
options in the option files.
This program can print errors, print the changed files, update the
configuration files in place.
When running with the options:
--update --edit=last --error-group=mysqld-5.7
The configuration files will be changed so that they should work
with both MySQL 5.7 and MariaDB. You should provide the currently
used MySQL version if --error-group is used.

Usage: /usr/bin/mariadb-migrate-config-file [--print | --update] [OPTIONS] [OPTION_FILES]

If OPTION_FILES is not provided, all default MariaDB configuration
files will be printed/upgraded

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

  --add-skip-slave-start
                      Add skip_slave_start to the [mariadbd] group if not
                      present.
  --add-mariadb-replication-compatibility
                      Add options to [error-group] to enable MySQL to replicate
                      to MariaDB. Options added are:
                      binlog-row-value-options=""
                      binlog_transaction_compression=0 and binlog_format=row.
  --add-mysql-replication-compatibility
                      Add options to [mariadbd] section to enable MariaDB to
                      replicate to MySQL.
  --add-client-server-group
                      Add a [client-server] group if it does not exists. This
                      will contain the last port and socket found in the
                      [mysqld] or [server] groups.
  --backup            Backup the updated configuration files. The backup file
                      name are of the type: 'original_name'-timestamp.BAK
  --copy-mysqld-groups
                      Copy valid MariaDB options from [mysqld-###] groups to
                      the [mariadbd] group.
                      (Defaults to on; use --skip-copy-mysqld-groups to disable.)
  --error-group=name  Group to use for options not supported by MariaDB when
                      using --edit=[inline|last]. Should be set usually to
                      something like 'mysqld-#.##' when moving from MySQL and
                      'unknown' when upgrading MariaDB or if there are already
                      [mariadbd] groups in the config files.
  --edit=name         Select what to do with invalid options. '' (default) no
                      changes. 'remove' removes them. 'comment' comments them
                      with '#'. inline' adds [error_group] before unknown
                      options. 'last' moves incompatible or mariadbd specific
                      options to the end of the given file under [error_group],
                      [unsupported_group] or [mariadbd].
  --fix-all           Same as --no-myisam --from=mysql --add-skip-slave-start
                      --add-mysql-replication-compatibility
                      --add-mariadb-replication-compatibility
                      --add-client-server-group --edit=last
  --from=name         Options are MySQL (default) or MariaDB. Used to specify
                      if your are upgrading from MySQL or an earlier MariaDB
                      version. When upgrading from MySQL, only the MySQL groups
                      [mysqld] and [server] are processed. If MariaDB is
                      specified, all MariaDB entries read by the current
                      MariaDB version (12.3.3-MariaDB) will be processed. Note
                      that when upgrading from an earlier MariaDB version,
                      mariadb-upgrade is the preferred tool! This tool is in
                      this case mainly useful to check if there is any
                      incompatibilities in the MariaDB configuration files.
  -?, --help          Display this help message and exit.
  --mariadbd=name     Path to the mariadbd server. Used to verify if the config
                      file changes succeeded.
  --no-myisam         Assume no usage of MyISAM tables.  Makes the MyISAM
                      buffers very small to save memory. Useful when moving to
                      MariaDB when there are no user data in MyISAM tables.
                      This option only has an effect if the config file
                      contains settings of the key-buffer-size variable.
  --print             Print upgraded files to stdout. The 'edit' option decides
                      the output format.
  -s, --silent        Print less information
  --update            Update the configuration files in place.
  --update-paths      When used with --from=mysql, change file paths having
                      /mysql or /mysqld ending with '/', '.', space, or new
                      line to /mariadbd. This is intended to be used when you
                      want to run MySQL and MariaDB on the same system.
  --unsupported-group=name
                      Group to use for options in [mariadbd] group that is not
                      supported by MariaDB when using '--edit=[inline|last]
                      --from=mariadb'.
  --verify            Verify updates by testing the used config files through
                      mariadbd. Disabled if --print is used. Note that verify
                      only works if one uses --defaults-file=# or if one does
                      not specify any configuration files on the command line.
                      When using verify the mariadbd option has also to be
                      used.
  -V, --version       Output version information and exit.

If moving from MYSQL, the recommended usage is to use the following 3 steps:

- Check if there is anything that needs changing:
mariadb-migrate-config-file --from=mysql

- Check how the new configuration files would look like:
mariadb-migrate-config-file --from=mysql --edit=last --print

- Modify all configuration files keeping backups of the originals:
mariadb-migrate-config-file --from=mysql --edit=last --update --backup --error-group=mysqld-5.7

Examples:
- Go through all my.cnf and included files and print not supported options.
  The groups checked are [server], [mysqld] and [mysqld-###]. Options valid
  for MariaDB in [mysqld-###] groups are copied to the [mariadbd] group:
mariadb-migrate-config-file

- Go through all my.cnf and include files and print options not supported by
  the current MariaDB version. All MariaDB groups read by mariadbd are checked:
mariadb-migrate-config-file --from=mariadb

- Print not supported options in ~/.my.cnf:
mariadb-migrate-config-file ~/.my.cnf

- Go through /etc/my.cnf and print all not supported options. Check also the
  by running it through the MariaDB server:
mariadb-migrate-config-file --defaults-file=/etc/my.cnf --verify=1 --mariadbd=#path-to-mariadbd#

- Print the current content of all my.cnf and included files (no changes):
mariadb-migrate-config-file --print

- As print, but change all paths from /mysql to /mariadbd. Useful to check the
  effect of --update-paths:
mariadb-migrate-config-file --print --edit=last --update-paths

- Print modified version of all my.cnf and included files where supported
  options from [mysqld-###] groups are copied to a [mariadbd] group at the end
  of the file. Not supported options from [mysqld] and [server] are moved to
  [mysqld-5.7] (default value of 'error_group'):
mariadb-migrate-config-file --print --edit=last

- Print modified version of all my.cnf and included files where supported
  options from [mysqld-###] groups are copied inline to [mariadbd] groups. Not
  supported options in the [mysqld] and [server] groups are moved to
  [mysqld-8.0]:
mariadb-migrate-config-file --print --edit=inline --error-group=mysqld-8.0

- Print modified version of all my.cnf and includedfiles where supported
  options from [mysqld-###] groups are copied to a [mariadbd] group. Not
  supported options from [mysqld] and [server] are removed:
mariadb-migrate-config-file --print --edit=remove

- As '--remove', but not supported options are commented:
mariadb-migrate-config-file --print --edit=comment

- Modify all my.cnf and included files. Supported options from [mysqld-###]
  groups are copied to [mariadbd] groups. Not supported options in the
  [mysqld] and [server] groups are moved to a [mysqld-5.7] group. The original
  of the changed config files are stored as backup files. If no option files
  are specified the mariadbd server will be started using them to verify that
  the new options files works with it:
mariadb-migrate-config-file --edit=update --edit=inline --backup

- Move all unknown mariadbd options to the group [unknown]:
mariadb-migrate-config-file --update --edit=inline --error_group=unknown --from=mariadb

- Use all common options when converting from MySQL to MariaDB. See definition
  for --fix-all for more details:
mariadb-migrate-config-file --fix-all


Variables (--variable-name=value)
and boolean options {FALSE|TRUE}      Value (after reading options)
------------------------------------- ------------------------------------
add-skip-slave-start                  FALSE
add-mariadb-replication-compatibility FALSE
add-mysql-replication-compatibility   FALSE
add-client-server-group               FALSE
backup                                FALSE
copy-mysqld-groups                    TRUE
error-group                           mysqld-5.7
edit
from                                  MySQL
mariadbd
no-myisam                             FALSE
print                                 FALSE
silent                                FALSE
update                                FALSE
update-paths                          FALSE
unsupported-group                     options-not-recognized-by-mariadbd
verify                                FALSE
Options (20)
OptionDescriptionSource
--add-skip-slave-startAdd skip_slave_start to the [mariadbd] group if not present.help
--add-mariadb-replication-compatibilityAdd options to [error-group] to enable MySQL to replicate to MariaDB.help
--add-mysql-replication-compatibilityAdd options to [mariadbd] section to enable MariaDB to replicate to MySQL.help
--add-client-server-groupAdd a [client-server] group if it does not exists.help
--backupBackup the updated configuration files.help
--copy-mysqld-groupsCopy valid MariaDB options from [mysqld-###] groups to the [mariadbd] group.help
--error-group nameGroup to use for options not supported by MariaDB when using --edit=[inline|last].help
--edit nameSelect what to do with invalid options.help
--fix-allSame as --no-myisam --from=mysql --add-skip-slave-starthelp
--from nameOptions are MySQL (default) or MariaDB.help
-?, --helpDisplay this help message and exit.help
--mariadbd namePath to the mariadbd server.help
--no-myisamAssume no usage of MyISAM tables.help
--printPrint upgraded files to stdout.help
-s, --silentPrint less informationhelp
--updateUpdate the configuration files in place.help
--update-pathsWhen used with --from=mysql, change file paths having /mysql or /mysqld ending with '/', '.', space, or new line to /mariadbd.help
--unsupported-group nameGroup to use for options in [mariadbd] group that is not supported by MariaDB when using '--edit=[inline|last]help
--verifyVerify updates by testing the used config files through mariadbd.help
-V, --versionOutput version information and exit.help

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.