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:
- Modify the repository configuration, so the system's package manager installs MariaDB 10.3. For example,
- On Debian, Ubuntu, and other similar Linux distributions, see Updating the MariaDB APT repository to a New Major Release for more information.
- On RHEL, CentOS, Fedora, and other similar Linux distributions, see Updating the MariaDB YUM repository to a New Major Release for more information.
- On SLES, OpenSUSE, and other similar Linux distributions, see Updating the MariaDB ZYpp repository to a New Major Release for more information.
-
Stop MariaDB. The server should be cleanly shut down, with no incomplete transactions remaining. innodb_fast_shutdown must be set to
0
or1
and innodb_force_recovery must be less than3
. - 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
- On Debian, Ubuntu, and other similar Linux distributions, execute the following:
- Install the new version of MariaDB.
- On Debian, Ubuntu, and other similar Linux distributions, see Installing MariaDB Packages with APT for more information.
- On RHEL, CentOS, Fedora, and other similar Linux distributions, see Installing MariaDB Packages with YUM for more information.
- On SLES, OpenSUSE, and other similar Linux distributions, see Installing MariaDB Packages with ZYpp for more information.
- Make any desired changes to configuration options in option files, such as
my.cnf
. This includes removing any options that are no longer supported. - Start MariaDB.
- Run
mysql_upgrade
.-
mysql_upgrade
does two things:- Ensures that the system tables in the
mysql
database are fully compatible with the new version. - Does a very quick check of all tables and marks them as compatible with the new version of MariaDB .
- Ensures that the system tables in the
-
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
- New reserved words: EXCEPT and INTERSECT. These can no longer be used as identifiers without being quoted.
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
-
mysqldump in MariaDB 10.3 includes logic to cater for the mysql.transaction_registry table.
mysqldump
from an earlier MariaDB release cannot be used on MariaDB 10.3 and beyond.
MariaDB Backup and Percona XtraBackup
- Percona XtraBackup is not compatible with MariaDB 10.3. Installations currently using XtraBackup should upgrade to MariaDB Backup before upgrading to MariaDB 10.3.
Privileges
- If a user has the SUPER privilege but not the
DELETE HISTORY
privilege, running mysql_upgrade will grantDELETE HISTORY
as well.
Major New Features To Consider
You might consider using the following major new features in MariaDB 10.3:
See Also
© 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/