Upgrading from MariaDB 5.5 to MariaDB 10.0

What You Need to Know

There are no changes in table or index formats between MariaDB 5.5 and MariaDB 10.0, so on most servers the upgrade should be painless.

How to Upgrade

For Windows, see Upgrading MariaDB on Windows 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 Percona XtraBackup.

The suggested upgrade procedure is:

  1. Modify the repository configuration, so the system's package manager installs MariaDB 10.0. For example,
  2. Set innodb_fast_shutdown to 0. It can be changed dynamically with SET GLOBAL. For example:
    SET GLOBAL innodb_fast_shutdown=0;
  3. Stop MariaDB.
  4. 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
  5. Install the new version of MariaDB.
  6. Make any desired changes to configuration options in option files, such as my.cnf. This includes removing any options that are no longer supported.
  7. Start MariaDB.
  8. 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 5.5 and 10.0

As mentioned previously, on most servers upgrading from 5.5 should be painless. However, there are some things that have changed which could affect an upgrade:

Options That Have Changed Default Values

Most of the following options have increased a bit in value to give better performance. They should not use much additional memory, but some of them a do use a bit more disk space.

Option Old default value New default value
aria-sort-buffer-size 128M 256M
back_log 50 150
innodb-buffer-pool-instances 1 8 (except on 32-bit Windows)
innodb-concurrency-tickets 500 5000
innodb-log-file-size 5M 48M
innodb-old-blocks-time 0 1000
innodb-open-files 300 400 [2]
innodb-purge-batch-size 20 300
innodb-undo-logs ON 20
max-connect-errors 10 100
max-relay-log-size 0 1024M
myisam-sort-buffer-size 8M 128M
optimizer-switch ... Added extended_keys=on, exists_to_in=on

Options That Have Been Removed or Renamed

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

Option Reason
engine-condition-pushdown Replaced with set optimizer_switch='engine_condition_pushdown=on'
innodb-adaptive-flushing-method Removed by XtraDB
innodb-autoextend-increment Removed by XtraDB
innodb-blocking-buffer-pool-restore Removed by XtraDB
innodb-buffer-pool-pages Removed by XtraDB
innodb-buffer-pool-pages-blob Removed by XtraDB
innodb-buffer-pool-pages-index Removed by XtraDB
innodb-buffer-pool-restore-at-startup Removed by XtraDB
innodb-buffer-pool-shm-checksum Removed by XtraDB
innodb-buffer-pool-shm-key Removed by XtraDB
innodb-checkpoint-age-target Removed by XtraDB
innodb-dict-size-limit Removed by XtraDB
innodb-doublewrite-file Removed by XtraDB
innodb-fast-checksum Renamed to innodb-checksum-algorithm
innodb-flush-neighbor-pages Renamed to innodb-flush-neighbors
innodb-ibuf-accel-rate Removed by XtraDB
innodb-ibuf-active-contract Removed by XtraDB
innodb-ibuf-max-size Removed by XtraDB
innodb-import-table-from-xtrabackup Removed by XtraDB
innodb-index-stats Removed by XtraDB
innodb-lazy-drop-table Removed by XtraDB
innodb-merge-sort-block-size Removed by XtraDB
innodb-persistent-stats-root-page Removed by XtraDB
innodb-read-ahead Removed by XtraDB
innodb-recovery-stats Removed by XtraDB
innodb-recovery-update-relay-log Removed by XtraDB
innodb-stats-auto-update Renamed to innodb-stats-auto-recalc
innodb-stats-update-need-lock Removed by XtraDB
innodb-sys-stats Removed by XtraDB
innodb-table-stats Removed by XtraDB
innodb-thread-concurrency-timer-based Removed by XtraDB
innodb-use-sys-stats-table Removed by XtraDB
xtradb-admin-command Removed by XtraDB

Reserved Words

New reserved word: RETURNING. This can no longer be used as an identifier without being quoted.

Other

The SET OPTION syntax is deprecated in MariaDB 10.0. Use SET instead.

New Major Features To Consider

You should consider using the following new major features in MariaDB 10.0:

For Master / Slave Setups

Galera

See Upgrading from MariaDB Galera Cluster 5.5 to MariaDB Galera Cluster 10.0 for more details on Galera upgrades.

Variables

Notes

  1. The innodb-open-files variable defaults to the value of table-open-cache (400 is the default) if it is set to any value less than 10 so long as innodb-file-per-table is set to 1 or TRUE (the default). If innodb_file_per_table is set to 0 or FALSE and innodb-open-files is set to a value less than 10, the default is 300

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-55-to-mariadb-100/