Upgrading from MariaDB 10.2 to MariaDB 10.3

How to Upgrade

For Windows, see Upgrading MariaDB on Windows instead.

For MariaDB Galera Cluster, see Upgrading from MariaDB 10.2 to MariaDB 10.3 with Galera Cluster instead.

Before you upgrade, it would be best to take a backup of your database. This is always a good idea to do before an upgrade. We would recommend Mariabackup.

The suggested upgrade procedure is:

  1. Modify the repository configuration, so the system's package manager installs MariaDB 10.3. For example,
  2. Stop MariaDB. The server should be cleanly shut down, with no incomplete transactions remaining. innodb_fast_shutdown must be set to 0 or 1 and innodb_force_recovery must be less than 3.
  3. Uninstall the old version of MariaDB.
    • On Debian, Ubuntu, and other similar Linux distributions, execute the following:
      sudo apt-get remove mariadb-server
    • On RHEL, CentOS, Fedora, and other similar Linux distributions, execute the following:
      sudo yum remove MariaDB-server
    • On SLES, OpenSUSE, and other similar Linux distributions, execute the following:
      sudo zypper remove MariaDB-server
  4. Install the new version of MariaDB.
  5. Make any desired changes to configuration options in option files, such as my.cnf. This includes removing any options that are no longer supported.
  6. Start MariaDB.
  7. Run mysql_upgrade.
    • mysql_upgrade does two things:
      1. Ensures that the system tables in the mysql database are fully compatible with the new version.
      2. Does a very quick check of all tables and marks them as compatible with the new version of MariaDB .

Incompatible Changes Between 10.2 and 10.3

On most servers upgrading from 10.2 should be painless. However, there are some things that have changed which could affect an upgrade:

Options That Have Changed Default Values

Option Old default value New default value
innodb_flush_method (empty) fsync
innodb_spin_wait_delay 6 4
performance_schema_max_stage_classes 150 160
plugin_maturity unknown One less than the server maturity

Options That Have Been Removed or Renamed

The following options should be removed or renamed if you use them in your option files:

Option Reason
innodb_buffer_pool_populate Used in XtraDB-only
innodb_cleaner_lsn_age_factor Used in XtraDB-only
innodb_corrupt_table_action Used in XtraDB-only
innodb_empty_free_list_algorithm Used in XtraDB-only
innodb_fake_changes Used in XtraDB-only
innodb_file_format The InnoDB file format is now Barracuda, and the old Antelope file format is no longer supported.
innodb_file_format_check No longer necessary as the Antelope InnoDB file format is no longer supported.
innodb_file_format_max No longer necessary as the Antelope InnoDB file format is no longer supported.
innodb_foreground_preflush Used in XtraDB-only
innodb_instrument_semaphores
innodb_kill_idle_transaction Used in XtraDB-only
innodb_large_prefix Large index key prefixes were made default from MariaDB 10.2, and limiting tables to small prefixes is no longer permitted in MariaDB 10.3.
innodb_locking_fake_changes Used in XtraDB-only
innodb_log_arch_dir Used in XtraDB-only
innodb_log_arch_expire_sec Used in XtraDB-only
innodb_log_archive Used in XtraDB-only
innodb_log_block_size Used in XtraDB-only
innodb_log_checksum_algorithm Translated to innodb_log_checksums (NONE to OFF, everything else to ON); only existed to allow easier upgrade from earlier XtraDB versions.
innodb_mtflush_threads Replaced by the innodb_page_cleaners system variable.
innodb_sched_priority_cleaner Used in XtraDB-only
innodb_show_locks_held Used in XtraDB-only
innodb_show_verbose_locks Used in XtraDB-only
innodb_support_xa XA transactions are always supported.
innodb_use_fallocate
innodb_use_global_flush_log_at_trx_commit Used in XtraDB-only
innodb_use_mtflush Replaced by the innodb_page_cleaners system variable.
innodb_use_stacktrace Used in XtraDB-only
innodb_use_trim

Reserved Words

SQL_MODE=ORACLE

  • MariaDB 10.3 has introduced major new Oracle compatibility features. If you upgrade and are using this setting, please check the changes carefully.

Functions

  • As a result of implementing Table Value Constructors, the VALUES function has been renamed to VALUE().
  • Functions that used to only return 64-bit now can return 32-bit results (MDEV-12619). This could cause incompatibilities with strongly-typed clients.

mysqldump

MariaDB Backup and Percona XtraBackup

Privileges

Major New Features To Consider

You might consider using the following major new features in MariaDB 10.3:

See Also

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.

© 2021 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/upgrading-from-mariadb-102-to-mariadb-103/