/usr/bin/mariadb-migrate-config-file from 13.0.2-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 (13.0.2-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