Effectively managing your MariaDB Server is key to ensuring its reliability, performance, and security. This section serves as your central hub for all aspects of MariaDB Server management.
Deployment
Learn to install and upgrade MariaDB Server. This section provides detailed instructions and best practices for setting up new instances and seamlessly upgrading existing ones to newer versions.
Deployment includes installing, configuring, upgrading, downgrading, migration from other DBMSs, and automated deployment options. Here's an overview of what you can find in this section.
Find general instructions for installing and upgrading MariaDB Server deployments. This section offers fundamental guidance applicable across various installation methods and environments.
Installing Enterprise Server
MariaDB Enterprise Server 11.8
Upgrade guide for MariaDB Enterprise Server 11.8, highlighting significant performance improvements in transactional throughput, new vector search optimizations, and enhanced observability features.
MariaDB Enterprise Server 10.6
Upgrade documentation for MariaDB Enterprise Server 10.6, featuring Atomic DDL support, JSON_TABLE function, improved Oracle compatibility modes, and the removal of older storage engines.
MariaDB Enterprise Server 10.5
A collection of upgrade guides for older, end-of-life versions of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
MariaDB Enterprise Server 10.4
A collection of upgrade guides for older, end-of-life versions of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
MariaDB Binary Packages
Provides details on using MariaDB binary packages (tarballs, RPMs, DEBs) for installation, including repository configuration scripts.
MariaDB Enterprise Server Upgrade Paths
Provides an overview of supported upgrade paths for MariaDB Enterprise Server, linking to specific guides for upgrading between major versions.
MariaDB Enterprise Server 11.4
Instructions for upgrading to MariaDB Enterprise Server 11.4, which introduces new data types like UUID and INET4, advanced JSON functions, and non-blocking online schema changes.
Troubleshooting Installation Issues
A guide to diagnosing and resolving common installation and connection problems, such as socket errors, permission denied messages, and configuration conflicts.
Installing MariaDB RPM Files
Install and manage MariaDB Server using RPM packages. This section provides detailed instructions for deploying and upgrading MariaDB on RPM-based Linux distributions.
Installing Community Server
Learn how to install MariaDB Server on various platforms. This section provides detailed guides and considerations for setting up your database environment, from simple installations to complex deploy
Installing System Tables
Explains the necessity of initializing system tables (using mariadb-install-db) after installation and troubleshooting startup issues related to missing tables.
MariaDB Enterprise Server 10.3
A collection of upgrade guides for older, end-of-life versions of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
Compiling MariaDB with Extra Modules/Options
Compile MariaDB Server with extra modules and options. This section details how to customize your build from source, enabling specific features or optimizations for your deployment.
Archived Upgrade Guides (Unmaintained/EOL ES Versions)
A collection of upgrade guides for older, end-of-life versions of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
Installation Issues on Debian and Ubuntu
A collection of troubleshooting articles specific to Debian and Ubuntu deployments, covering upgrade failures, repository conflicts, and migration issues.
Compiling MariaDB From Source
Instructions for compiling MariaDB Server from source code using CMake, including obtaining the source and installing dependencies.
Legacy Guides
This section holds building-MariaDB-from-source instructions for building old versions of MariaDB. Recent instructions are in the Compiling MariaDB From Source: The Master Guide page.
Configuring MariaDB
Learn how to configure MariaDB Server. This section covers essential configuration options, system variables, and best practices for tuning your database for optimal performance and security.
Deployment Methods
Overview of different deployment architectures (single-node, primary/replica) & methods, including manual installation via repositories or tarballs, and automated deployment with tools like Ansible.
Method
Typical use case
Use in-house infrastructure and tooling to deploy pre-compiled MariaDB binaries from a compressed tar archive
Use Docker and the MariaDB Enterprise Docker Registry to deploy in a container
Available deployment methods are component-specific.
Information on creating a free MariaDB ID account to access software downloads, including binary packages and repositories.
A MariaDB ID is a free account that provides:
Customer access to MariaDB database product downloads
Create A MariaDB ID
You can register for a MariaDB ID with a social login or a traditional email/password.
Create a using one of the following Single sign-on methods:
Sign up using your Google Account
Sign up using your GitHub Account
Sign up using your LinkedIn Account
Or use your email address:
Enter your email address and press next.
Click the reset button. A password link will appear in your email.
Once you set a new password, the MariaDB account page will appear.
Obtaining Support
MariaDB Corporation provides commercial support and services for MariaDB database products.
To contact us with questions, or if you need assistance:
If you are able to login to your MariaDB ID,
If you do not have a MariaDB ID or are unable to login,
\
Checking MariaDB RPM Package Signatures
Instructions on how to verify the integrity of MariaDB RPM packages using GPG signatures, including importing the public key and running `rpm --checksig`.
For MariaDB Enterprise Server, see the MariaDB Enterprise GPG Keys section of the GPG page for details on how to import the key used by those repositories.
To check the signature you first need to import the public part of the key like so:
Next you need to let pgp know about the key like so:
You can check to see if the key was imported with:
Once the key is imported, you can check the signature of the MariaDB RPM files by running the something like the following in your download directory:
The output of the above will look something like this (make sure gpg shows up on each OK line):
See Also
This page is licensed: CC BY-SA / Gnu FDL
Installation issues on Windows
Common installation problems on Windows, such as issues with User Account Control (UAC) or unsupported Windows versions, and their solutions.
Unsupported Versions of Windows
Recent versions of MariaDB may not install on unsupported Windows versions. See to find the final supported versions.
Systems with User Account Control
Running mysql_install_db.exe from a standard command prompt might cause the error:
To get rid of it, use the elevated command prompt, for example on Windows 7 start it via 'Run as administrator' option.
This page is licensed: CC BY-SA / Gnu FDL
Installing MariaDB on macOS (PKG)
How to install MariaDB Server on macOS. This is possible using Homebrew.
MariaDB Server does not currently provide a .pkg installer for macOS. For information about how to install MariaDB Server on macOS using Homebrew, see Installing MariaDB Server on macOS Using Homebrew.
This page is licensed: CC BY-SA / Gnu FDL
Creating the MariaDB Source Tarball
Explains how to generate a source tarball from the MariaDB build environment using `automake` and `make dist`.
Instructions for building MariaDB on Gentoo Linux using the `emerge` command.
MariaDB is in Gentoo, so the steps to build it are:
Synchronize your tree with\
emerge --sync
Build MariaDB using\
emerge mariadb
This page is licensed: CC BY-SA / Gnu FDL
Installing on an Old Linux Version
Guidance for dealing with glibc or shared library errors when attempting to install modern MariaDB binaries on older Linux distributions.
This article lists some typical errors that may happen when you try to use an incompatible MariaDB binary on a linux system:
The following example errors are from trying to install MariaDB built for SuSE 11.x on a SuSE 9.0 server:
and
If you see either of the above errors, the binary MariaDB package you installed is not compatible with your system.
The options you have are:
Find another MariaDB package or tar from the
MariaDB for DirectAdmin Using RPMs
Specific instructions for installing MariaDB RPMs on servers running the DirectAdmin control panel, including necessary configuration edits to prevent conflicts.
If you are using DirectAdmin and you encounter any issues with , then the directions below may help. The process is very straightforward.
Installing with YUM is preferable to installing the MariaDB RPM packages manually, so only do this if you are having issues such as:
Starting httpd:
Or:
Cross-compiling MariaDB
Instructions for cross-compiling MariaDB for different architectures, including using Buildroot and CMake toolchain files.
Buildroot
is a way to cross compile MariaDB and other packages into a root filesystem. In the menuconfig you need to enable "Enable C++ Support" first under "Toolchain". After C++ is enabled MariaDB is an option under "Target Packages" ->"Libraries" -> "Databases" -> "mysql support" -> "mysql variant" -> "mariadb". Also enable the "mariadb server" below the "mysql support" option.
apt-upgrade Fails, But the Database is Running
Solutions for when `apt-get upgrade` hangs or fails because the MariaDB service takes too long to start, triggering a timeout in the init script.
After running apt-upgrade mariadb, it's possible that apt shows a fail in trying to start the server, but in fact the database is up and running, which then provokes apt to remain in a non finished state.
For example:
This situation could occur if the timeout for the init script was too short. For example, see , a situation where the timeout was 30 seconds, but the server was taking 48 seconds to start.
To overcome this, the timeout needs to be increased. This can be achieved as follows:
Troubleshooting MariaDB Installs on RHEL / CentOS
Solutions for common installation issues on RHEL and CentOS, such as conflicts with existing MySQL installations and handling configuration file backups (.rpmsave).
The following article is about different issues people have encountered when installing MariaDB on RHEL / CentOS.
It is highly recommended to where possible.
In RHEL/ CentOS it is also possible to install a or a . The RPM is the preferred version, except if you want to install many versions of MariaDB or install MariaDB in a non standard location.
Replacing MySQL
Installing System Tables on Unix
Instructions for running the `mariadb-install-db` script on Unix-like systems to initialize the MariaDB data directory and system tables.
mariadb-install-db initializes the MariaDB data directory and creates the in the database, if they do not exist. MariaDB uses these tables to manage , , and . It also uses them to provide the data for the command in the client.
works by starting MariaDB Server's mysqld process in mode and sending commands to create the and their content.
There is a version specifically for Windows, .
To invoke mariadb-install-db
Error: symbol mysql_get_server_name, version libmysqlclient_16 not defined
Troubleshooting guide for a specific linker error involving `mysql_get_server_name` and `libmysqlclient_16`, typically occurring due to library version mismatches.
If you see the error message:
...then you are probably trying to use the mysql command-line client from MariaDB with libmysqlclient.so from MySQL.
The symbol mysql_get_server_name() is something present in the MariaDB source tree and not in the MySQL tree.
If you have both the MariaDB client package and the MySQL client packages installed this error will happen if your system finds the MySQL version oflibmysqlclient.so first.
To figure out which library is being linked in dynamically (for instance, the wrong one) use the 'ldd' tool.
Installation Issues with PHP5
Addresses compatibility issues between MariaDB and older PHP5 client libraries, specifically regarding header and library version mismatches.
PHP5 may give an error if used with the old connect method:
This is because the library wrongly checks and expects that the client library must be the exact same version as PHP was compiled with. You would get the same error if you tried to upgrade just the MySQL client library without upgrading PHP at the same time.
Ways to fix this issue:
Switch to using the in PHP (Recommended solution).
Specifying Which Plugins to Build
Explains how to use CMake options like `PLUGIN_xxx` to control which plugins are built statically, dynamically, or not at all during compilation.
By default all plugins are enabled and built as dynamic .so (or .dll) modules. If a plugin does not support dynamic builds, it is not built at all.
Use PLUGIN_xxx cmake variables. They can be set on the command line with -DPLUGIN_xxx=value or in the cmake gui. Supported values are
Value
Effect
Creating a Debian Repository
Instructions on how to create a custom Debian repository for MariaDB packages using `dpkg-scanpackages`.
Below are instructions for creating your own Debian repository. The instructions are based on
Using the Debian repository you just created
One needs to add a new file to the /etc/apt/sources.list.d/ directory. For instance a new file called mariadb.list
Building MariaDB on Fedora
Instructions for building MariaDB on Fedora, using `dnf builddep` to install dependencies and CMake to configure the build.
In the event that you are using the Linux-based operating system Fedora or any of its derivatives and would like to compile MariaDB from source code, you can do so using the MariaDB build in the official repositories.
Installing Build Dependencies
MariaDB requires a number of packages to compile from source. Fortunately, you can use the package in the Fedora repository to retrieve most of the relevant build dependencies through DNF.
Running DNF in this way pulls the build dependencies for the release of MariaDB compiled by your version of Fedora. These may not be all the dependencies you need to build the particular version of MariaDB you want to use, but it will retrieve most of them.
Building MariaDB from a Source RPM
Instructions for building MariaDB binaries from a source RPM package using tools like `rpmbuild`, `yum`, or `dnf`.
For some distributions you can build MariaDB from a source RPM. (See also ).
You can build it as follows:
using dnf
On RHEL8 you might need to start with:
Why Source RPMs (SRPMs) Aren't Packaged For Some Platforms
Explains the limitations in providing Source RPMs (SRPMs) for certain platforms due to CMake version requirements and build system dependencies.
MariaDB source RPMs (SRPMs) are not packaged on all platforms for which MariaDB RPMs are packaged.
The reason is that MariaDB's build process relies heavily on for a lot of things. In this specific case, MariaDB's build process relies on to build RPMs. The specific package generator that it uses to build RPMs is called .
Support for source RPMs in became usable with MariaDB's build system starting from around . This means that we do not produce source RPMs on platforms where the installed version is older than that.
See also .
This page is licensed: CC BY-SA / Gnu FDL
Building MariaDB on Solaris and OpenSolaris
Notes and configuration tips for building MariaDB on Solaris and OpenSolaris platforms, including buildbot setup.
The following two articles should help you get your Solaris machine prepared to build MariaDB (just ignore the parts about installing buildbot):
> scripts/mysql_install_db
./bin/my_print_defaults: /lib/i686/libc.so.6:
version `GLIBC_2.4' not found (required by ./bin/my_print_defaults)
> ./bin/mysqld --skip-grant &
./bin/mysqld: error while loading shared libraries: libwrap.so.0:
cannot open shared object file: No such file or directory
We do not want DirectAdmin's custombuild to remove/overwrite our MariaDB
installation whenever an update is performed. To rectify this, disable automatic MySQL installation.
Edit /usr/local/directadmin/custombuild/options.conf and replace mysql_inst=yes with mysql_inst=no
When MariaDB is installed manually (i.e. not using YUM), updates are not
automatic. You will need to update the RPMs yourself.
To cross-compile with cmake you will need a toolchain file. See, for example, here. Besides cmake specific variables it should have, at least
with appropriate values for your target architecture. Normally these MariaDB configuration settings are detected by running a small test program, and it cannot be done when cross-compiling.
Note that during the build few helper tools are compiled and then immediately used to generate more source files for this very build. When cross-compiling these tools naturally should be built for the host architecture, not for the target architecture. Do it like this (assuming you're in the mariadb source tree):
Now the helpers are built and you can cross-compile:
Here you invoke cmake, specifying the path to your toolchain file and the path to the import_executables.cmake that you have just built on the previous step. Of course, you can also specify any other cmake parameters that could be necessary for this build, for example, enable or disable specific storage engines.
On systems where systemd is not enabled/supported: The timeout can be increased by setting MYSQLD_STARTUP_TIMEOUT either directly in the script or via the command line. The init script also sources /etc/default/mariadb, so it can also be used to set MYSQLD_STARTUP_TIMEOUT to persistently change the startup timeout.
On systems that support systemd: The startup timeout can be increased by setting TimeoutStartSec systemd option.
If you removed an MySQL RPM to install MariaDB, note that the MySQL RPM on uninstall renames /etc/my.cnf to /etc/my.cnf.rpmsave.
After installing MariaDB you should do the following to restore your configuration options:
Unsupported configuration options
If you are using any of the following options in your /etc/my.cnf or other my.cnf file you should remove them. This is also true for MySQL 5.1 or newer:
You can then use your package manager's tools to find out which package the library belongs to.
On CentOS the command to find out which package installed a specific file is:
On Debian-based systems, the command is:
Here's an example of locating the library and finding out which package it belongs to on an Ubuntu system:
The above shows that the mysql command-line client is using the library /usr/lib/libmysqlclient.so.16 and that library is part of the libmariadbclient16 Ubuntu package. Unsurprisingly, the mysql command-line client works perfectly on this system.
If the answer that came back had been something other than a MariaDB package, then it is likely there would have been issues with running the MariaDB mysql client application.
If the library that the system tries to use is not from a MariaDB package, the remedy is to remove the offending package (and possibly install or re-install the correct package) so that the correct library can be used.
This page is licensed: CC BY-SA / Gnu FDL
symbol mysql_get_server_name, version libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time reference
the plugin will be compiled statically, if supported. Otherwise it will be not compiled.
DYNAMIC
the plugin will be compiled dynamically, if supported. Otherwise it will be not compiled. This is the default behavior.
AUTO
the plugin will be compiled statically, if supported. Otherwise it will be compiled dynamically.
YES
same as AUTO, but if plugin prerequisites (for example, specific libraries) are missing, it will not be skipped, it will abort cmake with an error.
Note that unlike autotools, cmake tries to configure and build incrementally. You can modify one configuration option and cmake will only rebuild the part of the tree affected by it. For example, when you do cmake -DWITH_EMBEDDED_SERVER=1 in the already-built tree, it will make libmysqld to be built, but no other configuration options will be changed or reset to their default values.
In particular this means that if you have run, for examplecmake -DPLUGIN_OQGRAPH=NO
and later you want to restore the default behavior (with OQGraph being built) in the same build tree, you would need to runcmake -DPLUGIN_OQGRAPH=DYNAMIC
Alternatively, you might simply delete the CMakeCache.txt file — this is the file where cmake stores current build configuration — and rebuild everything from scratch.
This page is licensed: CC BY-SA / Gnu FDL
after which one can run
and collect bugs :-).
apt-get install will spray output of scripts and servers all over /var/log. It is also possible to set DEBIAN_SCRIPT_DEBUG=1 to get some (not all) of it to stdout.
Cleaning up after failed installation
Run
to see what is installed, and then
until the former produces empty output. Note: after some failures, /etc/mysql and /var/lib/mysql are not cleaned and still need to be removed manually.
You'll also need to install Git to retrieve the source repository:
Building MariaDB
Once you have the base dependencies installed, you can retrieve the source code and start building MariaDB. The source code is available on GitHub. Use the --branch option to specify the particular version of MariaDB you want to build.
With the source repository cloned onto your system, you can start building MariaDB. Change into the new mariadb-server/ directory and run CMake to prepare the build.
Once CMake readies the relevant Makefile for your system, use Make to build MariaDB.
The BUILD dir contains various scripts for compiling MariaDB on Solaris. The BUILD/compile-solaris-amd64 and BUILD/compile-solaris-amd64-debug are probably the most useful.
The scripts do not play nice with non-bash shells such as the Korn Shell (ksh). So if your /bin/sh is pointing at ksh or ksh93, you'll want to change it so that it points at bash.
Explains the benefits and use cases for deploying MariaDB using package tarballs (containing RPMs or DEBs) for offline or custom installations.
MariaDB Corporation provides package tarballs for some MariaDB database products.
Package tarballs provide multiple benefits:
Package tarballs are compressed tar archives that contain software packages.
Software packages can be installed using the operating system's package manager without relying on a remote repository.
RPM (.rpm) files are distributed for CentOS, Red Hat Enterprise Linux (RHEL), and SUSE Linux Enterprise Server (SLES).
DEB (.deb) files are distributed for Debian and Ubuntu.
If you want to deploy MariaDB database products without using a package tarball, are available. Available deployment methods are component-specific.
Use Cases
MariaDB database products can be deployed with package tarballs to support use cases, such as:
Transfer the package tarball to an air-gapped network for installation without an internet connection
Install software using a package manager without configuring a package repository
Automatically install missing dependencies using a package manager
Compatibility
The following MariaDB database products can be deployed using package tarballs:
MariaDB Community Server 10.5
MariaDB Community Server 10.6
MariaDB Enterprise Server 10.5
MariaDB Enterprise Server 10.6
Download a Package Tarball
MariaDB Corporation provides package tarballs (.debs.tar, .rpms.tar) to support customers who leverage in-house package repositories to distribute software to their servers. Secure any such repository to prevent outside access.
MariaDB Corporation provides multiple interfaces to download package tarballs.
Visit the MariaDB Downloads page.
Complete customer login.
Select the desired version and operating system.
Installation From Package Tarball
Once downloaded and extracted, you can:
Install .rpm packages (RHEL, CentOS, and SLES): rpm -i
Install .deb packages (Debian, Ubuntu): dpkg -i
Install from the simple package repositories included in the tarball. Missing dependencies will be resolved when using the apt, yum
Installation loads software to the system. This software requires configuration before the database server is ready for use.
Step-by-step guide for compiling MariaDB on Debian, including installing build dependencies via `apt-get` and using `autobake-deb.sh`.
In the event that you are using the Linux-based operating system Debian or any of its direct derivatives and would like to compile MariaDB from source code, you can do so using the MariaDB source repository for the release that interests you. For Ubuntu and its derivatives, see Building on Ubuntu.
Before you begin, install the software-properties-common and devscripts packages:
Installing Build Dependencies
MariaDB requires a number of packages to compile from source. Fortunately, you can use the MariaDB repositories to retrieve the necessary code for the version you want. Use the tool to determine how to set up the MariaDB repository for your release of Debian, the version of MariaDB that you want to install, and the mirror that you want to use.
First add the authentication key for the repository, then add the repository.
The second command added text to the /etc/apt/sources.list file. One of these lines is the repository containing binary packages for MariaDB, the other contains the source packages. The line for the source packages is commented out by default. This can be scripted:
Alternately, open the file using your preferred text editor and uncomment the source repository.
Once the repository is set up, you can use apt-get to retrieve the build dependencies. MariaDB packages supplied by Ubuntu and packages supplied by the MariaDB repository have the same base name of mariadb-server. You need to specify the specific version you want to retrieve.
Building MariaDB
Once you have the base dependencies installed, you can retrieve the source code and start building MariaDB. The source code is available on GitHub. Use the --branch option to specify the particular version of MariaDB you want to build.
The source code includes scripts to install the remaining build dependencies. For Ubuntu, they're located in the debian/ directory. Navigate into the repository and run the autobake-deb.sh script. Then use
After Building
After building the packages, it is a good idea to put them in a repository. See the page for instructions.
This page is licensed: CC BY-SA / Gnu FDL
Building MariaDB From Source Using musl-based GNU/Linux
Guide for compiling MariaDB on Alpine Linux or other musl-based systems, noting limitations like TokuDB support.
Instructions on compiling MariaDB on musl-based operating systems (Alpine)
The instructions on this page will help you compile MariaDB from source.
Links to more complete instructions for specific platforms can be found on the source page.
First, .
Next, .
Using cmake
and above is compiled using cmake. You can configure your
build simply by running cmake using special option, i.e.
To build and install MariaDB after running cmake use
Note that building with MariaDB this way will disable tokuDB, till tokuDB becomes fully supported on musl.
This page is licensed: CC BY-SA / Gnu FDL
Building RPM Packages From Source
Explains how to generate RPM packages from the MariaDB source code using CMake with the `-DRPM` flag.
To generate RPM packages from the build, supply the -DRPM=xxx flag to CMake, where the value xxx is the name of the distribution you're building for. For example, centos7 or rocky8 or fedora39 or sles15.
What these do are controlled in the following CMake files:
cmake/cpack_rpm.cmake
cmake/build_configurations/mysql_release.cmake
cmake/mariadb_connector_c.cmake
To build the packages you should execute:
See Also
This page is licensed: CC BY-SA / Gnu FDL
Building MariaDB on Ubuntu
Step-by-step guide for compiling MariaDB on Ubuntu, covering build dependencies installation and using source repositories.
In the event that you are using the Linux-based operating system Ubuntu or any of its derivatives and would like to compile MariaDB from source code, you can do so using the MariaDB source repository for the release that interests you.
Before you begin, install the software-properties-common, devscripts and equivs packages.
Installing Build Dependencies
MariaDB requires a number of packages to compile from source. Fortunately, you can use the MariaDB repositories to retrieve the necessary code for the version you want. Use the tool to determine how to set up the MariaDB repository for your release of Ubuntu, the version of MariaDB that you want to install, and the mirror that you want to use.
First add the authentication key for the repository, then add the repository.
Once the repository is set up, you can use apt-get to retrieve the build dependencies. MariaDB packages supplied by Ubuntu and packages supplied by the MariaDB repository have the same base name of mariadb-server. You need to specify the specific version you want to retrieve.
Building MariaDB
Once you have the base dependencies installed, you can retrieve the source code and start building MariaDB. The source code is available on GitHub. Use the --branch option to specify the particular version of MariaDB you want to build.
The source code includes scripts to install the remaining build dependencies. For Ubuntu, they're located in the debian/ directory. Navigate into the repository and run the autobake-deb.sh script. Then use
Further Dependencies
In the event that there are still build dependencies that are not satisfied, use mk-build-deps to generate a build dependency deb to use in installing the remaining packages.
Then, call the autobake-deb.sh script again to build MariaDB.
After Building
After building the packages, it is a good idea to put them in a repository. See the page for instructions.
This page is licensed: CC BY-SA / Gnu FDL
Compiling MariaDB with Vanilla XtraDB
A guide for compiling older versions of MariaDB (specifically 5.3) with the original XtraDB engine from Percona Server, useful for testing purposes.
Sometimes, one needs to have MariaDB compiled with Vanilla XtraDB. This page describes the process to do this. The process is rather crude, as my goal was just a once-off compile for testing (that is, not packaging or shipping) purposes.
The process is applicable to and XtraDB from Percona Server 5.1.61.
wget http://s.petrunia.net/scratch/make-vanilla-xtradb-work-with-mariadb.diff
bzr branch /path/to/mariadb-5.3 5.3-vanilla-xtradb-r3
cd 5.3-vanilla-xtradb-r3/storage/
tar czf innodb_plugin.tgz innodb_plugin/
rm -rf innodb_plugin
tar czf xtradb.tgz xtradb/
rm -rf xtradb
cd ../../
tar zxvf ~/Percona-Server-5.1.61.tar.gz
cp -r Percona-Server-5.1.61/storage/innodb_plugin 5.3-vanilla-xtradb-r3/storage/
patch -p1 -d 5.3-vanilla-xtradb-r3/storage/innodb_plugin/ < make-vanilla-xtradb-work-with-mariadb.diff
cd 5.3-vanilla-xtradb-r3/
BUILD/autorun.sh
./configure --with-plugin-innodb_plugin
make
This page is licensed: CC BY-SA / Gnu FDL
Compiling with the InnoDB Plugin from Oracle
Historical guide on compiling older MariaDB versions with the original Oracle InnoDB plugin instead of XtraDB.
MariaDB uses InnoDB as the default storage engine.
If you want to use Oracle's InnoDB plugin, then you need to compile MariaDB andnot specify --without-plugin-innodb_plugin when configuring. For example, a simple ./configure without any options will do.
When the InnoDB plugin is compiled, the innodb_plugin test suite will test the InnoDB plugin in addition to xtradb:
./mysql-test-run --suite=innodb_plugin
To use the innodb_plugin instead of xtradb you can do (for ):
See Also
This page is licensed: CC BY-SA / Gnu FDL
Creating the MariaDB Binary Tarball
How to generate a binary tarball from compiled source using `make package`, enabling portable distribution.
If the binaries are already built, you can generate a binary tarball with
make package
Prior to , the following steps were required:
Use make_binary_distribution to generate a binary tar file:
This creates a source file with a name like mariadb-5.3.2-MariaDB-beta-linux-x86_64.tar.gz in your current directory.
The other option is to use the bakery scripts. In this case you don't have to compile MariaDB source first.
This page is licensed: CC BY-SA / Gnu FDL
Customer Download Token
Instructions on how to retrieve and use a Customer Download Token to access MariaDB Enterprise Server packages and binaries.
MariaDB Corporation customers can use a Customer Download Token to download MariaDB database products using command-line tools or automation. This page provides instructions on how to retrieve and use the Customer Download Token.
Alternatively, customers can download MariaDB database products using a web browser from the without a Customer Download Token if they are logged in with their MariaDB ID.
Retrieve Customer Download Token
MariaDB Corporation customers can retrieve their Customer Download Token through the MariaDB Customer Portal.
MariaDB Installation via RPMs on CentOS 7
A detailed walkthrough for installing a specific legacy version of MariaDB (10.1.21) on CentOS 7 using individual RPM packages, including dependency resolution.
This guide provides the detailed steps for installing MariaDB 10.1.21 via individual RPM packages on CentOS 7. The process involves installing dependencies, then the main packages, and resolving potential conflicts as they appear.
The RPMs needed for the installation are available from the MariaDB website. The required packages for this guide are:
Step-by-Step Installation
1. Install Basic Dependencies
httpd:
Syntax error on line 18 of /etc/httpd/conf/httpd.conf:
Syntax error on line 1 of /etc/httpd/conf/extra/httpd-phpmodules.conf:
Cannot load /usr/lib/apache/libphp5.so into server:
libmysqlclient.so.18: cannot open shared object file: No such file or directory
Starting httpd:
httpd:
Syntax error on line 18 of /etc/httpd/conf/httpd.conf:
Syntax error on line 1 of /etc/httpd/conf/extra/httpd-phpmodules.conf:
Cannot load /usr/lib/apache/libphp5.so into server:
/usr/lib/apache/libphp5.so: undefined symbol: client_errors
sudo sed -i 's/^mysql_inst=yes/mysql_inst=no/' /usr/local/directadmin/custombuild/options.conf
$ mkdir host
$ cd host
$ cmake ..
$ make import_executables
$ cd ..
$ mkdir target
$ cd target
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/file.cmake -DIMPORT_EXECUTABLES=../host/import_executables.cmake
$ make
# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Setting up mariadb-server-10.1 (10.1.10+maria-1~trusty) ...
* Stopping MariaDB database server mysqld
...done.
* Starting MariaDB database server mysqld
...fail!
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mariadb-server-10.1 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mariadb-server:
mariadb-server depends on mariadb-server-10.1 (= 10.1.10+maria-1~trusty); however:
Package mariadb-server-10.1 is not configured yet.
dpkg: error processing package mariadb-server (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
mariadb-server-10.1
mariadb-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
mv /etc/my.cnf.rpmsave /etc/my.cnf
skip-bdb
mariadb-install-db --user=mysql
ldd /path/to/the/binary | grep mysql
me@mybox:~$ ldd $(which mysql)|grep mysql
libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 (0xb74df000)
First, use yum to install some general system packages that may be required.
2. Install MariaDB RPM Packages
Next, install the downloaded RPMs in sequence. Make sure to run these commands as a user with sufficient privileges (e.g., using sudo).
During this process, you may encounter errors related to dependencies or conflicts. The sections below describe these common issues and their solutions.
Troubleshooting Common Installation Errors and Warnings
Error 1: Package Conflict with mariadb-libs
While installing mariadb-common, you may encounter a conflict with an existing package.
You must find and remove the conflicting mariadb-libs package.
After removing it, you can run the rpm -ivh MariaDB-10.1.21-centos7-x86_64-common.rpm command again.
Error 2: Failed Dependency for Galera
While installing the Galera package, the installation may fail due to a missing library.
The required dependency libboost_program_options can be installed using yum.
After installing boost-devel, you can run the rpm -ivh galera... command again.
Warning: GPG Key NOKEY
You may also see a warning about a missing GPG key during the installation.
This warning can be resolved by importing the official MariaDB GPG key.
Post-Installation
After all RPMs are successfully installed, the final step is to secure the server. This involves setting the root password, removing test databases, and disallowing remote root login.
sed -e '/^# deb-src.*mariadb/s/^# //' -i /etc/apt/sources.list
$ sudo vim /etc/apt/sources.list
...
deb [arch=amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.3/debian stretch main
deb-src [arch=amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.3/debian stretch main
# Search for the installed package
rpm -qa | grep mariadb-libs
# Expected output: mariadb-libs-5.5.52-1.el7.x86_64
# Remove the conflicting package (use the exact name from the command above)
rpm -ev --nodeps mariadb-libs-5.5.52-1.el7.x86_64
# rpm -ivh galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm
error: Failed dependencies:
libboost_program_options.so.1.53.0()(64bit) is needed by galera-25.3.19-1.rhel7.el7.centos.x86_64
yum install boost-devel.x86_64
warning: galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
# First, start the newly installed MariaDB service
systemctl start mariadb
# Now, run the security script and follow the prompts
mysql_secure_installation
MariaDB Corporation's Customer Download Tokens are customer-specific. Protect the token as you would any security credential.
To retrieve the Customer Download Token for your account:
MariaDB Corporation customers can use their Customer Download Token for multiple operations.
Choose the procedure for your desired operation and substitute your Customer Download Token for CUSTOMER_DOWNLOAD_TOKEN:
Operation
Use Case
Install MariaDB database products using package managers on CentOS / RHEL (YUM), Debian / Ubuntu (APT), and SLES (ZYpp)
Download binary files using command-line tools or automation
Deploy using Docker
Configure MariaDB Enterprise Repository
MariaDB Corporation provides the MariaDB Enterprise Repository to install MariaDB database products using package managers on CentOS / RHEL (YUM), Debian / Ubuntu (APT), and SLES (ZYpp).
The MariaDB Enterprise Repository is configured using the mariadb_es_repo_setup script, which requires the Customer Download Token to be provided via the --token option.
MariaDB Corporation provides an interface to download binary files using command-line tools or automation.
Binary files can be downloaded using command-line tools or automation from the MariaDB Download interface with the Customer Download Token. The URL is in the following format:
Download a binary file using the following procedure:
In your web browser, visit the MariaDB Download interface for the specific MariaDB database product:
MariaDB Enterprise Server
MariaDB MaxScale
MariaDB Xpand
In your web browser, navigate to the binary file that you would like to download and copy the URL. For example, to download a binary tarball of MariaDB Enterprise Server 10.6.20-16 for RHEL 8 on x86_64, the URL is:\
FILE_ID is an internal identifier that is different for each file.
Extract the FILE path from the copied URL. For example, to download the file mentioned above, the FILE path is:\
Use your Customer Download Token and the FILE path to construct your customer-specific URL to download the file using command-line tools or automation.For example, to download the file mentioned above, the customer-specific URL is:\
Use your customer-specific URL to download the file using command-line tools or automation:For example, to download the file mentioned above using wget:
or using curl:
Log in to MariaDB Enterprise Docker Registry
Docker is an open platform for developing, shipping, and running applications that allows you to separate your applications from your infrastructure. MariaDB Corporation provides the MariaDB Enterprise Docker Registry.
The MariaDB Enterprise Docker Registry provides Docker images for MariaDB Enterprise Server. The Docker images for MariaDB Enterprise Server are currently beta maturity, so they are not currently recommended for production.
cd mariadb-source
./scripts/make_binary_distribution
GPG
Information about the GPG keys used to sign MariaDB packages and repositories, including how to import them for verification.
The MariaDB project signs their MariaDB packages for Debian, Ubuntu, Fedora, and Red Hat. This page documents information about the keys that we use and have used.
MariaDB Community Server Debian / Ubuntu key
Our MariaDB Community Server repositories for Debian "Sid" and the Ubuntu 16.04 and beyond "Xenial" use the following GPG signing key. As detailed in MDEV-9781, APT 1.2.7 (and later) prefers SHA2 GPG keys and now prints warnings when a repository is signed using a SHA1 key like our previous GPG key. We have created a SHA2 key for use with these.
Information about this key:
The short Key ID is: 0xC74CD1D8
The long Key ID is: 0xF1656F24C74CD1D8
The full fingerprint of the key is: 177F 4010 FE56 CA33 3630 0305 F165 6F24 C74C D1D8
Usage of the apt-key command is deprecated in the latest versions of Debian and Ubuntu, and the replacement method is to download the keyring file to the /etc/apt/trusted.gpg.d/ directory. This can be done with the following:
Prior to Debian 9 (Stretch), and Debian Unstable (Sid), and Ubuntu 16.04 LTS (Xenial), the id of our GPG public key was 0xcbcb082a1bb943db. The full key fingerprint is:
MariaDB Community Server RPM / Source Keys
Beginning in 2023 we migrated the key used to sign our yum/dnf/zypper repositories and to sign our source code and binary tarballs to the same key we use for Debian and Ubuntu.
Key ID and Fingerprint information is in the , above.
The key can be imported on RPM-based systems using the following command:
or
The GPG Key ID of the MariaDB signing key we used for yum/dnf/zypper repositories and to sign our source code tarballs until the end of 2022 was 0xCBCB082A1BB943DB. The short form of the id is 0x1BB943DB
MariaDB Enterprise GPG Keys
Information about the key we use on most platforms for MariaDB Enterprise Server releases:
The short Key ID is: 0xE3C94F49
The long Key ID is: 0xCE1A3DD5E3C94F49
MariaDB MaxScale GPG Keys
In December 2025, moved to using the same GPG key used by MariaDB Enterprise Server for RHEL 10 and Debian 13 Trixie.
Information on this key:
The short Key ID is: 0x8C27D14E
The long Key ID is: 0x5D87FACA8C27D14E
Configuring Repositories
See the page for details on using the mariadb_repo_setup and mariadb_es_repo_setup scripts to configure repositories that use these keys.
See the on configuring MariaDB Foundation repositories that use these keys.
This page is licensed: CC BY-SA / Gnu FDL
Installing MariaDB With the rpm Tool
A guide to installing MariaDB using the low-level `rpm` command, suitable for situations where package managers like `yum` or `dnf` are not available or preferred.
This article describes how to download the RPM files and install them using therpm command.
Navigate toand choose
the desired database version and then select the RPMs that match your Linux distribution and architecture.
Clicking those links takes you to a local mirror. Choose the rpms
link and download the desired packages. The packages will be similar to the following:
For a standard server installation you will need to download at least
the client, shared, and server RPM files. See About the MariaDB RPM Files for more information about what is included in each RPM package.
After downloading the MariaDB RPM files, you might want to check their signatures. See for more information about checking signatures.
Prior to installing MariaDB, be aware that it will conflict with an existing
installation of MySQL. To check whether MySQL is already installed, issue the
command:
If necessary, you can remove found MySQL packages before installing MariaDB.
To install MariaDB, use the command:
You should see output such as the following:
Be sure to follow the instructions given in the preceding output and create a
password for the root user either by using or by running the
/usr/bin/mysql_secure_installation script.
Installing the MariaDB RPM files installs the MySQL tools in the /usr/bin
directory. You can confirm that MariaDB has been installed by using the
client program. Issuing the command mariadb should give you the MariaDB
cursor.
See Also
This page is licensed: CC BY-SA / Gnu FDL
Installing System Tables on Windows
Details the use of `mariadb-install-db.exe` on Windows to create new database instances, set the root password, and register Windows services.
The mariadb-install-db.exe utility is the Windows equivalent of mariadb-install-db.
Functionality
The functionality of mariadb-install-db.exe is comparable with the shell script mariadb-install-db used on Unix, however it has been extended with both Windows specific functionality (creating a Windows service) and to generally useful functionality. For example, it can set the 'root' user password during database creation. It also creates the my.ini configuration file in the data directory and adds most important parameters to it (e.g port).
mariadb-install-db.exe is used by the MariaDB installer for Windows if the "Database instance" feature is selected. It obsoletes similar utilities and scripts that were used in the past such as mysqld.exe--install,mysql_install_db.pl, and mysql_secure_installation.pl.
Parameter(s)
Description
To create a Windows service, mariadb-install-db.exe should be run
by a user with full administrator privileges (which means elevated command
prompt on systems with UAC).
Example
will create the database in the directory C:\db, register the auto-start
Windows service "MyDB", and set the root password to 'secret'.
To start the service from the command line, execute
Removing Database Instances
If you run your database instance as service, to remove it completely from the
command line, use
This page is licensed: CC BY-SA / Gnu FDL
Best Practices
A guide outlining essential recommendations for stable MariaDB deployments, covering backup strategies, change management, security controls, and pre-production testing.
These best practices warrant consideration, but are not expected to apply to every business or in every situation. Recommendations here are not mandatory.
General Recommendations
We recommend that you:
Understand business requirements before deployment.
Adapt deployment practices to align to business requirements.
Consider to what extent deployed systems should integrate with existing business systems and practices.
Backups
Addition, removal, and change of database systems are types of production changes. Before undertaking any production changes:
Perform a backup of existing data and database configurations.
Establish a plan for data restoration for use in reverting a change.
Perform a test to confirm your backup is complete and viable.
Irreversible Changes
Installation of new database servers, change of server configuration, migrations, upgrades, and downgrades can produce irreversible changes which may require you to restore from the last good backup.
Changes to data format on disk, including from upgrades and downgrades, are generally irreversible. A fault during the upgrade or downgrade process may corrupt data. Confirm you have a recent, full, complete, and tested backup before any upgrade or downgrade operation.
When are in use, downgrade operations will generally require migration of data between servers or restore from a backup made pre-upgrade.
Full and Complete Backup
Before proceeding with an upgrade, perform a full and complete backup. Confirm successful completion of the backup operation and test the backup.
Business requirements may require you to retain backups made to support upgrade and downgrade operations.
Additional information regarding backing up and restoring MariaDB database products can be found in "".
Change Management
Change Management, Automation, Orchestration
Server configuration changes should be done through change management. Accurate records of the time of change and reason for change can enable faster issue diagnosis.
Automation can enable repeatability of change deployment, and can aid Pre-Production and Post-Production testing.
Automation or orchestration can enable repeatability of server deployment, including system provisioning.
Production Controls
Dedicated Servers
Database servers exist to run database server software. Database servers should not also run web server software, act as a file server, or run other workloads.
Understand workload and data isolation requirements before server deployment. Isolation requirements are often defined through business requirements, including:
Data and application security requirements that trigger isolation of one workload from other workloads.
Separation of Development and Testing environments from Production environments.
Production Controls
Understand control requirements before server deployment, including records of control implementation needed to support audits.
Control requirements typically follow data:
Both production and non-production systems may require production-level controls based on the presence of data subject to control.
Database servers, backup servers, and other systems may require production-level controls based on the presence of data subject to control.
Testing
Servers should be validated before exposure to production workloads and production data.
It may be appropriate to prevent access to an unconfigured server until configured and validated. Load balancer configuration, firewall rules, or database server configuration are often used to prevent unintended traffic to new servers.
Details assessed during Pre-Production validation can include:
Server capacity, including performance of disk systems
Server security configuration and hardening
Tuning for initial data load vs production workloads
Alignment to business requirements
Updates
MariaDB Product Notifications allow you to keep aware of new releases, including security fixes. Customers can manage MariaDB Product Notifications through the .
Additionally, MariaDB Enterprise Server follows an enterprise lifecycle, that provides a .
Obtaining Support
MariaDB Corporation provides commercial support and services for MariaDB database products.
New customers can for more information.
Existing MariaDB Subscription customers can access technical support via the as detailed in .
Instructions for setting up the build environment on macOS, including installing dependencies via Homebrew and configuring CMake.
Prelude
Building MariaDB on macOS relies on the Apple-provided toolchain and Homebrew for dependencies.
You can install the toolchain without XCode (suggested, unless you have XCode installed already) with:
Homebrew is a package manager for macOS which you can install from https://brew.sh
Install Dependencies
First, install the upstream dependencies, then clone MariaDB.
Second, clone MariaDB from the GitHub repository: see the page for options.
Set Up the Environment
CMake should find the dependencies automatically, but we may need to set several environment variables to explicitly point at locations of dependencies installed by Homebrew to avoid conflicts with system-native versions that aren't suitable for building MariaDB. In the worst case scenario, use the following (but you can try building MariaDB first by skipping to the "Run CMake" section below to see if these are necessary in your setup):
The installation location of Homebrew depends on the processor type. Apple Silicon macs will have Homebrew in /opt/homebrew while Intel macs will have Homebrew in /usr/local.
Run CMake
By default, macOS uses a case-insensitive filesystem. When building, we can't create a build subdirectory because BUILD already exists, and all the CMake output will end up mixed in with BUILD. Instead, create a mariadb-build directory as that is unique. cd into mariadb-build and, from there, run CMake with the following flags:
(You can vary the values of these flags depending on what you need to do.)
To install Ninja, run brew install ninja in Terminal.
If CMake runs successfully, you can then run the build itself:
This produces a mariadbd binary at mariadb-build/sql.
This page is licensed: CC BY-SA / Gnu FDL
MariaDB 5.5.33 Debian and Ubuntu Installation Issues
Specific instructions for resolving dependency breakage that occurred with the release of MariaDB 5.5.33 on Debian and Ubuntu systems.
This page is obsolete. The information is old, outdated, or otherwise currently incorrect. We are keeping the page for historical reasons only. Do not rely on the information in this article.
Shortly after the release we became aware of some installation issues with the Debian and Ubuntu repositories. These issues were fixed in , but due to how apt works, steps need to be taken to solve the broken dependencies before upgrading.
We know of three scenarios when dependencies were broken. The steps to fix each of them are pretty much the same, only the list of broken dependencies and hence the list of packages to take care of them differs. The basic idea is to downgrade those certain packages to 5.5.32 temporarily before upgrading them to 5.5.33a.
If you ran into issues when moving from to , look through each of the three scenarios to see which one applies to you and then follow the steps to apply that fix.
Applying the fix
To get your system ready to apply the fix, do the following:
Comment out the standard repo in the /etc/apt/sources.list or /etc/apt/sources.list.d/mariadb.repo file (or wherever you have the repositories configured).
Add a repository to the sources.list. The easiest way is to add the following. Just replace '{os}' and '{dist}' with the appropriate values.
For example, on Debian Wheezy the line would be:
And on Ubuntu Raring the line would be:
Then run 'sudo apt-get update'
Then 'sudo apt-get install' the list of packages to downgrade as given in the applicable section below.
Next, modify our sources.list to remove the 5.5.32 repo and switch back to the normal 5.5 repo
5.5.32 server + 5.5.32 client upgraded to the initial (17 Sep 2013) release of 5.5.33
In this first scenario, both client and server were partially upgraded to 5.5.33 before the process aborted. The problem looks like this:
To fix it, the following server and client packages need to be temporarily downgraded to 5.5.32 (replace 'wheezy' with the name of whatever distribution you are using):
5.5.32 Galera server and 5.5.32 MariaDB client upgraded to 5.5.33
In this scenario, the client upgraded, but Galera-server did not. The problem looks like this:
To fix it, only the client packages need to be temporarily downgraded to 5.5.32 (replace wheezy with whatever your distribution is):
5.3.12 server + 5.3.12 client + 5.5.32 libmariadbclient18 upgraded to 5.5.33
In this scenario, only the library upgraded. The problem looks like this:
To fix it, the library needs to be downgraded to 5.5.32 (replace wheezy with your distribution):
After switching back to the 5.5 repo, the libraries won't get upgraded, they will stay 5.5.32 until you upgrade the server to 5.5.33a.
This page is licensed: CC BY-SA / Gnu FDL
Deploy with Local Package Repository Mirrors
Learn how to create and maintain local mirrors of MariaDB package repositories for secure or air-gapped deployments.
MariaDB Corporation provides package repositories, including the MariaDB Enterprise Repository and the MariaDB Community Repository, that can be used to install MariaDB products using the operating system's package manager. Local mirrors of the package repositories can be used for local deployments.
Local package repository mirrors provide multiple benefits:
MariaDB Corporation's official package repositories are the source for the local mirror.
Tools provided by the operating system are used to create and maintain the local mirror.
After a local mirror is created, the mirror can be used just like the MariaDB repositories to install MariaDB products using the operating system's package manager.
If you want to deploy MariaDB database products without using a local package repository mirror, are available. Available deployment methods are component-specific.
Use Cases
MariaDB database products can be deployed with local package repository mirrors to support use cases, such as:
Install from the mirror on an air-gapped network that is not connected to the internet
Remove packages from mirror for versions that are not used in the local environment
Add packages to mirror for tools and clients that are used in the local environment
Compatibility
The following MariaDB database products can be deployed using package repositories:
MariaDB Community Server 10.6
MariaDB Community Server 10.11
MariaDB Community Server 11.4
MariaDB Community Server 11.8
Operating System Package Managers
The package manager depends on the operating system:
Operating System
Package Manager
Create a Local Repository Mirror
Creating a local mirror of the MariaDB Enterprise Repository or the MariaDB Community Repository enables you to distribute MariaDB products to your servers from a local repository you support. Secure any such repository mirror to prevent outside access.
Compatibility and Breaking Changes for MariaDB Enterprise Server 10.5
Guide Overview
This page acts as a technical reference, highlighting the logical impacts, architectural changes, and potential breaking points when upgrading to MariaDB Enterprise Server 10.5. It focuses on technical issues identified through customer support and engineering audits. This guide aims to supplement the comprehensive feature summaries available in the page for MariaDB Enterprise Server 10.5.
Installing MariaDB Alongside MySQL
Instructions for installing MariaDB on the same server as an existing MySQL installation, useful for migration testing or running multiple versions.
MariaDB was originally designed as a drop-in replacement of MySQL, with more features, new storage engines, fewer bugs, and better performance, but you can also install it alongside MySQL. (This can be useful, for example, if you want to migrate databases/applications one by one.)
Here are the steps to install MariaDB near an existing MySQL installation.
Download the compiled binary tar.gz file that contains the latest version.
Extract the files in a directory of your choice. In the following, we assume you chose the
Build Environment Setup for Linux
Lists required tools and dependencies for building MariaDB on Linux, and how to install them using package managers.
Required Tools
The following is a list of tools that are required for building MariaDB on Linux and Mac OS X. Most, if not all, of these will exist as packages in your distribution's package repositories, so check there first. See , , and pages for specific requirements for those platforms.
Building MariaDB on CentOS
Instructions for building MariaDB on CentOS, including installing build dependencies with `yum-builddep`.
In the event that you are using the Linux-based operating system CentOS or any of its derivatives, you can optionally compile MariaDB from source code. This is useful in cases where you want use a more advanced release than the one that's available in the official repositories, or when you want to enable certain feature that are not otherwise accessible.
Installing Build Dependencies for
Before you start building MariaDB, you first need to install the build dependencies required to run the compile. CentOS provides a tool for installing build dependencies. The yum-builddep utility reads a package and generates a list of the packages required to build from source, then calls YUM to install them for you. In the event that this utility is not available on your system, you can install it through the
Building MariaDB on FreeBSD
Instructions for building MariaDB on FreeBSD using Ports or Poudriere, including configuring build options.
It is relatively straightforward to build MariaDB from source on FreeBSD. When working with an individual host, you can use Ports to compile particular or multiple versions of MariaDB. When working with multiple hosts, you can use Poudriere to build MariaDB once, then serve it as a package to multiple FreeBSD hosts.
Using Ports
The FreeBSD Ports Collection provides a series of Makefiles that you can use to retrieve source code, configure builds, install dependencies and compile software. This allows you to use more advanced releases than what is normally available through the package managers as well as enable any additional features that interest you.
cd $PACKAGING_WORK
bakery/preheat.sh
cd bakery_{number}
bakery/tarbake51.sh last:1 $MARIA_WORK
bakery/autobake51-bintar.sh mariadb-{version_num}-maria-beta-ourdelta{number}.tar.gz
Create group mariadb and user mariadb and set correct ownerships:
Create a new my.cnf in /opt/mariadb from support files:
Edit the file /opt/mariadb-data/my.cnf and add custom paths, socket, port, user and the most important of all: data directory and base directory. Finally the file should have at least the following:
Copy the init.d script from support files in the right location:
Edit /etc/init.d/mariadb replacing mysql with mariadb as below:
The trickiest part will be the last changes to this file. You need to tell mariadb to use only one configuration file. In the start section after**$bindir/mysqld_safe** add --defaults-file=/opt/mariadb-data/my.cnf. Finally the lines should look like:
The same change needs to be made to the mariadb-admin command below in the wait_for_ready() function so that the mariadb start command can properly listen for the server start. In the wait_for_ready() function, after $bindir/mariadb-admin add --defaults-file=/opt/mariadb-data/my.cnf. The lines should look like:
Run mariadb-install-db by explicitly giving it the my.cnf file as argument:
Now you can start MariaDB by
Make MariaDB start at system start:
Finally test that you have both instances running:
What about MariaDB Upgrades ?
By having the mariadb.socket, my.cnf file and databases in /opt/mariadb-data means that if you want to upgrade the MariaDB version you will only need to:
Extract the new version from the archive in /opt near the current version,
Stop MariaDB.
Change the symlink mariadb to point to the new directory.
Start MariaDB.
Run upgrade script... but remember you will need to provide the socket option --socket=/opt/mariadb-data/mariadb.sock .
This page is licensed: CC BY-SA / Gnu FDL
In the event that you have not used Ports before on your system, you need to first fetch and extract the Ports tree. This downloads the Ports tree from FreeBSD and extracts it onto your system, placing the various Makefiles, patches and so on in the /usr/ports/ directory.
In the event that you have used Ports before on this system, run Portsnap again to download and install any updates to the Ports tree.
This ensures that you are using the most up to date release of the Ports tree that is available on your system.
Building MariaDB from Ports
Once Portsnap has installed or updated your Ports tree, you can change into the relevant directory and install MariaDB. Ports for MariaDB are located in the /usr/ports/databases/ directory.
Note that FreeBSD treats the Server and Client as separate packages. The Client is a dependency of the Server, so you only need to build the Server to get both. It also provides a number of different versions. You can search the available ports from Fresh Ports. Decide what version of MariaDB you want to install, the change into the relevant directory. Once in the directory, run Make to build MariaDB.
In addition to downloading and building MariaDB, Ports also downloads and build any libraries on which MariaDB depends. Each port it builds will take you to a GUI window where you can select various build options. In the case of MariaDB, this includes various storage engines and specific features you need in your build.
Once you finish building the ports, install MariaDB on your system and clean the directory to free up disk space.
This installs FreeBSD on your server. You can now enable, configure and start the service as you normally would after installing MariaDB from a package.
Using Poudriere
Poudriere is a utility for building FreeBSD packages. It allows you to build MariaDB from a FreeBSD Jail, then serve it as a binary package to other FreeBSD hosts. You may find this is particularly useful when building to deploy multiple MariaDB servers on FreeBSD, such as with Galera Cluster or similar deployments.
Building MariaDB
Once you've configured your host to use Jails and Poudriere, initialize a jail to use in building packages and a jail for managing ports.
This creates two jails, package-builder and local-ports, which you can then use to build MariaDB. Create a text file to define the packages you want to build. Poudriere will build these packages as well as their dependencies. MariaDB is located at databases/mariadb103-server. Adjust the path to match the version you want to install.
Use the options command to initialize the build options for the packages you want Poudriere to compile.
Lastly, use the bulk command to compile the packages.
Using Poudriere Repositories
In order to use Poudriere, you need to set up and configure a web server, such as Nginx or Apache to serve the directory that Poudriere built. For instance, in the case of the above example, you would map to the package-builderjail: /usr/local/poudriere/data/packages/package-builder/.
You may find it useful to map this directory to a sub-domain, for instance httpspkg.example.com or something similar.
Lastly, you need to configure the FreeBSD hosts to use the Poudriere repository you just created. On each host, disable the FreeBSD official repositories and enable your Poudriere repository as an alternative.
Then add the URL for your Poudriere repository to configuration file:
You can then install MariaDB from Poudriere using the package manager.
Preparing... ########################################### [100%]
1:MariaDB-shared ########################################### [ 14%]
2:MariaDB-client ########################################### [ 29%]
3:MariaDB-client ########################################### [ 43%]
4:MariaDB-debuginfo ########################################### [ 57%]
5:MariaDB-devel ########################################### [ 71%]
6:MariaDB-server ########################################### [ 86%]
PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mariadb-admin -u root password 'new-password'
/usr/bin/mariadb-admin -u root -h hostname password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the MySQL manual for more instructions.
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MariaDB is available at http://www.askmonty.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Support MariaDB development by buying support/new features from
Monty Program Ab. You can contact us about this at sales@askmonty.org.
Alternatively consider joining our community based development effort:
http://askmonty.org/wiki/index.php/MariaDB#How_can_I_participate_in_the_development_of_MariaDB
Starting MySQL....[ OK ]
Giving mysqld 2 seconds to start
7:MariaDB-test ########################################### [100%]
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
wait_for_ready () {
[...]
if $bindir/mariadb-admin --defaults-file=/opt/mariadb-data/my.cnf ping >/dev/null 2>&1; then
[root@mariadb-near-mysql opt]# cd mariadb
[root@mariadb-near-mysql mariadb]# scripts/mariadb-install-db --defaults-file=/opt/mariadb-data/my.cnf
[root@mariadb-near-mysql opt]# /etc/init.d/mariadb start
Starting MySQL... [ OK ]
[root@mariadb-near-mysql opt]# cd /etc/init.d
[root@mariadb-near-mysql init.d]# chkconfig --add mariadb
[root@mariadb-near-mysql init.d]# chkconfig --levels 3 mariadb on
The key can be added on Debian-based systems using the following command:
and the full key fingerprint is:
This key was used by the yum/dnf/zypper repositories for RedHat, CentOS, Fedora, openSUSE, and SLES.
If you configure the mariadb.org rpm repositories using the repository configuration tool then your package manager will prompt you to import the key the first time you install a package from the repository.
You can also import the key directly using the following command:
The full fingerprint of the key is: 4C47 0FFF EFC4 D3DC 5977 8655 CE1A 3DD5 E3C9 4F49
On Debian / Ubuntu systems, you can install the keyring containing this key with:
The key can be imported on RPM-based systems using the following command:
or
For RHEL, AlmaLinux, Rocky, and Oracle Linux 10 and above, and for Debian 13 Trixie and above there are new requirements around GPG keys used to sign packages. For these distributions we have created a stronger GPG key for our Enterprise Server releases.
Information on this key:
The short Key ID is: 0x8C27D14E
The long Key ID is: 0x5D87FACA8C27D14E
The full fingerprint of the key is: BB2A 36F3 6C3B 4D37 3BAC 328A 5D87 FACA 8C27 D14E
On Debian / Ubuntu systems, you can install the keyring containing this key with:
The key can be imported on RPM-based systems using the following command:
or
The full fingerprint of the key is: BB2A 36F3 6C3B 4D37 3BAC 328A 5D87 FACA 8C27 D14E
On Debian / Ubuntu systems, you can install the keyring containing this key with:
The key can be imported on RPM-based systems using the following command:
or
Information on the key used by MaxScale repositories prior to December 2025:
The short Key ID is: 0xE3C94F49
The long Key ID is: 0xCE1A3DD5E3C94F49
The full fingerprint of the key is: 4C47 0FFF EFC4 D3DC 5977 8655 CE1A 3DD5 E3C9 4F49
On Debian / Ubuntu systems, you can install the keyring containing this key with:
The key can be imported on RPM-based systems using the following command:
Then 'sudo apt-get update' to get things back to normal
As a final optional step, once your normal mirror has at least you can 'sudo apt-get upgrade' to upgrade. To check what version of MariaDB our mirror has, run the following command (after running 'sudo apt-get update'):
For a full rundown of new features and overall improvements, users should consult the What's New guide. Note that for better clarity and accessibility, the technical specifics here may be integrated into the What's New guide in future documentation updates.
Architectural Changes
Binary and Process Renaming
MariaDB Enterprise Server 10.5 completes the transition to MariaDB-prefixed names for all executables.
Process Identification: While symbolic links (e.g., mysqld) are provided for backward compatibility, the primary server binary is now mariadbd.
Monitoring Alert: When started via systemd or mariadbd-safe, the process will identify as mariadbd in the system process list.
Impact: Custom monitoring scripts using ps, pidof, or pgrep to look for mysqld will fail and must be updated to look for mariadbd.
Security and Privileges
Granularity (The "SUPER" Split)
In 10.5, the SUPER privilege has been deconstructed into several smaller, granular privileges to improve security.
Command / Operation
Legacy Privilege (10.4)
New Required Privilege (10.5)
SHOW REPLICA STATUS
REPLICATION CLIENT
REPLICA MONITOR
SHOW BINLOG EVENTS
REPLICATION SLAVE
BINLOG MONITOR
Configuration and Include Paths
Debian and Ubuntu Path Logic
Beginning with 10.5, the configuration loading logic on Debian and Ubuntu has shifted:
Directory Priority: The directory /etc/mysql/mariadb.conf.d/ now uses numeric prefixes to dictate loading order.
Enterprise Overrides: The mariadb-enterprise.cnf file is typically loaded last, potentially overriding user-defined settings in 50-server.cnf.
Pre-Upgrade Requirements
Mandatory Clean Shutdown
Upgrading from 10.4 to 10.5 after a crash is not supported if the redo log was created in 10.4.
Requirement: You must perform a clean shutdown (setting SET GLOBAL innodb_fast_shutdown = 0 is recommended) before initiating the upgrade.
Redo Log Adjustment: If innodb-log-files-in-group is set to 2, it must be changed to 1 on the 10.4 instance, followed by a restart and a final clean shutdown before moving to 10.5.
pcre2-devel (optiona, will be automatically downloaded and installed if not on the system)
ccache ; Will speed up builds if you are going to use the scripts in the BUILD directory.
ctags or universal-ctags ; If you plan to use BUILD scripts and local editors
You can install these programs individually through your package manager.
In addition, some package managers support the use a build dependency command. When using this command, the package manager retrieves a list of build dependencies and install them for you, making it much easier to get started on the compile. The actual option varies, depending on the distribution you use.
On Ubuntu and Debian you can use the build-dep command.
With openSUSE and SUSE, you can use the source-install command.
Each of these commands works off of the release of MariaDB provided in the official software repositories of the given distribution. In some instances and especially in older versions of Linux, MariaDB may not be available in the official repositories. In these cases you can use the MariaDB repositories as an alternative.
Bear in mind, the release of MariaDB provided by your distribution may not be the same as the version you are trying to install. Additionally, the package managers don't always retrieve all of the packages you need to compile MariaDB. There may be some missed or unlisted in the process. When this is the case, CMake fails during checks with an error message telling you what's missing.
Note: On Debian-based distributions, you may receive a "You must put some 'source' URIs in your sources.list" error. To avoid this, ensure that /etc/apt/sources.list contains the source repositories.
For example, for Debian buster:
Refer to the documentation for your Linux distribution for how to do this on your system.
After editing the sources.list, do:
...and then the above mentioned build-dep command.
Note: On openSUSE the source package repository may be disabled. The following command will enable it:
After enabling it, you will be able to run the zypper command to install the build dependencies.
package. Once you have it, install the MariaDB build dependencies.
Running the above command installs many of the build dependencies, but it doesn't install all of them. It will only install dependencies for , which is not enough if you want to compile a newer MariaDB version!
Installing Build Dependencies for newer MariaDB versions
The following commands installs all packages needed to get and compile MariaDB 10.11:
You can replace openssl with gnutls above, depending on the TLS implementation you want to use.
If you plan to use the BUILD scripts to make it easier to build different configurations of MariaDB,
then you should also install ccache to speed up your compilations:
If you want to test the MariaDB installation, with the include mysql-test-run (mtr) system, you also need to install and configure cpan:
Once you have the base dependencies installed, you can retrieve the source code and start building MariaDB. The source code is available on GitHub. Use the --branch option to specify the particular version of MariaDB you want to build.
With the source repository cloned onto your system, you can start building MariaDB. Run CMake to ready MariaDB for the build,
Once CMake readies the relevant Makefile for your system, use Make to build MariaDB.
This generates an RPM file, which you can then install on your system or copy over to install on other CentOS hosts. The umask is needed because of a bug in cmake / cmake scripts.
Alternative, use one of the build scripts in the BUILD directory that allows you to compile different versions of MariaDB (debug, optimized, profiling etc).
A good option for developers is:
Creating MariaDB-compat package
MariaDB-compat package contains libraries from older MariaDB releases. They cannot be built from the current source tree, so cpack creates them by repackaging old MariaDB-shared packages. If you want to have -compat package created, you need to download MariaDB-shared-5.3 and MariaDB-shared-10.1 rpm packages for your architecture (any minor version will do) and put them one level above the source tree you're building. CMake will pick them up and create a MariaDB-compat package. CMake reports it as
Additional Dependencies
In the event that you miss a package while installing build dependencies, CMake may continue to fail after you install the necessary packages. If this happens to you, delete the CMake cache then run the above the command again:
When CMake runs through the tests again, it should now find the packages it needs, instead of the cache telling it they're unavailable.
Information about using MariaDB Debian Live images for testing and offline installation, including boot options and default credentials.
This page is obsolete. The information is old, outdated, or otherwise currently incorrect. We are keeping the page for historical reasons only. Do not rely on the information in this article.
A member of the MariaDB community, Mark <ms (at) it-infrastrukturen (dot) org>,
has created some Debian "squeeze" 6.0.4 based, live iso images with
or 5.3 pre-installed on them and some Debian "squeeze" 6.0.5 based, live iso images with pre-installed on them.
These live and install images can be used to quickly run a MariaDB server in live mode for learning or testing purposes, or to simplify and speed up off-line installations of Debian-based MariaDB servers onto harddisk.
To work in live mode the system boots from a usb stick (or CD/DVD) and runs in RAM without touching the system's harddisk drive.
The same usb stick (or CD/DVD media) can be used to install a complete server installation onto the harddisk drive using the included Debian installer.
All required MariaDB packages are included on the media, so there is no need for an Internet connection.
Three types of images are provided, text (command line), LXDE, and Gnome. The
text-based live images can be used for testing or server off-line installations. The two gui types, LXDE and Gnome, can be used for testing/learning in live mode or for off-line desktop installations. Debian live images with LXDE (gnome, KDE or awesome) are pretty comfortable for daily work as a replacement for whatever desktop OS is installed on the system.
There are three iso images for each type, one for 32-bit (i386) systems, one for 64-bit (amd64) systems, and one with both.
Live iso images (text) for i386, amd64 or multi architectures.
Live iso images (text) for i386, amd64 or multi architectures.
Live iso images with LXDE for i386, amd64 or multi architectures.
Live iso images with Gnome for i386, amd64 or multi architectures.
Live images
Live images demonstration video
The LXDE and Gnome images contain documentation under /srv/PDF. Including
instructions on how to create your own Debian live images in live mode (you
need 16GB RAM or more to be able to do this). See the README, README.live, and
live-manual.en.pdf files under /srv/PDF for details.
Note: Some HP notebooks are not able to boot binary hybrid iso images from a USB stick.
Downloads
To get the iso images you can use rsync:
or just use the links above (or go to:).
Preparing of bootable media:
A USB stick or CD/DVD can be used as bootable media. The preferred way is a USB stick.
for Linux: dd if=./<image_name_as_above.iso> of=/dev/<USB-stick-ID_like_sdb_or_sdc>
for other systems: cygwin includes dd and some other linux/Unix tools.
The iso images have been successfully tested on:
Acer ASPIRE @ne netbooks (1GB RAM)
ThinkPad T60p and T61p notebooks (2 or 4GB RAM)
Xeon E31270 / Asus P8BWS desktop (16GB ECC RAM)
AMD FX-4100 / Asus M5A99X EVO desktop (16GB ECC RAM)
Notes
It is possible to add some options on the bootline for special purposes like,
for example, the installation of additional packages from a local repository on
the image or assigning a static IP address and running sshd.
To configure a static IP use "ip=". For example:
"ip=eth0:192.168.1.53:255.255.255.0:192.168.1.1"
The full format of "ip=" is: "ip=[interface]:[IP_address]:[netmask]:[gateway]"
If you use an empty "ip=" value the content of /etc/network/interfaces
and /etc/resolv.conf will be used. Without the "ip=" option, dhcp
will be used to get an IP address.
For installing and running sshd (so that the image can act as a server in a
test environment) use: "sshd=on"
The live user is "sql" and the password is "live". Please change the
password immediately after first login!
Depending on the image or 5.3 server is installed. There is no
root passord for the database set so please set a password immediately
after first login!
Run repo-off-line.sh to activate local repositories on the image for
apt-get (for off-line installations) or repo-on-line.sh for internet
repositories.
The binary hybrid live iso images with multiple-choices inside the boot
menu allow for the assignment of two different IPs. (e.g. for testing of
clustered database operations)
Send any feedback or suggestions related to these images to:
Mark <ms (at) it-infrastrukturen (dot) org>
This page is licensed: CC BY-SA / Gnu FDL
Differences in MariaDB in Debian (and Ubuntu)
Explains the differences between official Debian/Ubuntu repository packages and those from MariaDB.org, particularly regarding library linking and configuration defaults.
The .deb packages provided by MariaDB Foundation's and MariaDB Corporation's repositories are not identical to the official .deb packages provided by Debian's and Ubuntu's default repositories.
The packages provided by MariaDB Foundation's and MariaDB Corporation's repositories are generated using the Debian packaging in MariaDB's official source code. The Debian packaging scripts are specifically in the debian/ directory.
The packages provided by Debian's and Ubuntu's default repositories are generated using the Debian packaging in Debian's mirror of MariaDB's source code, which contains some custom changes. The source tree can be found here:
As a consequence, MariaDB behaves a bit differently if it is installed from Debian's and Ubuntu's default repositories.
Option File Locations
The located at /etc/mysql/my.cnf is handled by the mechanism when the mysql-common package is installed. It is a symbolic link that references either mysql.cnf or mariadb.cnf depending on whether MySQL or MariaDB is installed. Most of the MariaDB are therefore actually located in /etc/mysql/mariadb.d/.
System Variables
Since there is no system variable difference from the Standard MariaDB.
Variable
MariaDB in Debian
Standard MariaDB
Notes
Options
Option
MariaDB in Debian
Standard MariaDB
Notes
TLS
MariaDB binaries from packages provided by Debian's and Ubuntu's default repositories are linked with a different TLS library than MariaDB binaries from packages provided by MariaDB Foundation's and MariaDB Corporation's repositories.
MariaDB Server binaries:
MariaDB Server is statically linked with the bundled libraries in packages provided by Debian's and Ubuntu's default repositories.
Authentication
The authentication plugin is installed by default in new installations that use the packages provided by Debian's default repositories in Debian 9 and later and Ubuntu's default repositories in Ubuntu 15.10 and later.
The root@localhost created by will also be created to authenticate via the authentication plugin in these builds.
See Also
More Information
For details, check out the Debian and Ubuntu official repositories:
This page is licensed: CC BY-SA / Gnu FDL
Installing MariaDB Binary Tarballs
A guide to installing MariaDB from pre-compiled binary tarballs on Linux, allowing for flexible installation paths and multiple versions.
Binary tarballs (bintars) are compressed tar archives that contain pre-compiled executables, libraries, and other deployment dependencies. They can usually be installed on any modern Linux distribution.
MariaDB Binary tarballs are named following the pattern: mariadb-VERSION-OS.tar.gz. Be sure to download the correct version for your machine.
Some older binary tarballs are marked '(GLIBC_2.14)' or '(requires GLIBC_2.14+)'. These binaries are built the same as the others, but on a newer build host, and they require GLIBC 2.14 or higher. Use the other binaries for machines with older versions of GLIBC installed. Run ldd --version to see which version is running on your distribution.
Others are marked systemd, which are for systems with systemd and GLIBC 2.19 or higher.
Benefits of Binary Tarballs
Binary tarballs provide multiple benefits:
They are highly OS independent. As long as you get the bintar for the architecture, GLIBC version, and if you are using systemd or not, the bintar should work almost anywhere.
You do not need to be root to use them.
Installing binary tarballs
To install the , unpack the distribution into the directory of your choice and run the script.
In the example below, we install MariaDB in the /usr/local/mysql directory (this is the default location for MariaDB for many platforms). However, any other directory should work too.
We install the binary with a symlink to the original name. This is done so that you can easily change MariaDB versions just by moving the symlink to point to another directory.
Ensure You Use the Correct my.cnf Files
MariaDB searches for the configuration files '/etc/my.cnf' (on some systems '/etc/mysql/my.cnf') and '~/.my.cnf'. If you have an old my.cnf file (maybe from a system installation of MariaDB or MySQL), you need to take care that you don't accidentally use the old one with your new binary .tar installation.
The normal solution for this is to ignore the my.cnf file in /etc when you use the programs in the tar file.
This is done by in your home directory and telling ,, and possibly to only use this one with the option '--defaults-file=~/.my.cnf'. Note that this has to be the first option for the above commands!
Installing MariaDB as root in /usr/local/mysql
If you have root access to the system, you probably want to install MariaDB under the user and group 'mysql' (to keep compatibility with MySQL installations):
The symlinking with ln -s is recommended as it makes it easy to install many MariaDB versions at the same time (for easy testing, upgrading, downgrading, etc).
If you are installing MariaDB to replace MySQL, then you can leave out the call to mariadb-install-db. Instead, shut down MySQL. MariaDB should find the path to the data directory from your old /etc/my.cnf file (path may vary depending on your system).
To start mariadbd, you should now do:
To test the connection, modify your $PATH so you can invoke clients such as , , etc.
You may want to modify your .bashrc or .bash_profile to make it permanent.
Installing MariaDB as Not root in Any Directory
Below, change /usr/local to the directory of your choice.
If you have problems with the above gunzip command line, you can instead, if you have gnu tar, do:
To start mariadbd, you should now do:
Auto Start of mariadbd
You can get mariadbd (the MariaDB server) to autostart by copying the file mysql.server file to the right place.
The exact place depends on your system. The mysql.server file contains instructions on how to use and fine tune it.
For systemd installation, the mariadb.service file will need to be copied from the support-files/systemd folder to the /usr/lib/systemd/system/ folder.
Note that, by default, the /usr/ directory is write protected by systemd, though, so when having the data directory in /usr/local/mysql/data as per the instructions above, you also need to make that directory writable. You can do so by adding an extra service include file:
After this, you can start the service using this command:
Stop the service with this command:
Please refer to the page for further information.
Post Installation
After this, remember to set proper passwords for all accounts accessible from untrusted sources, to avoid exposing the host to security risks!
Also consider using the to when your system boots.
On systems using systemd, instead, enable automatic startup during system boot with this command:
For details on the exact steps used to build the binaries, see the .
This page is licensed: CC BY-SA / Gnu FDL
Upgrade MariaDB Enterprise Server from 10.6 to 11.4
The upgrade guide details the standard upgrade path from MariaDB Enterprise Server 10.6 to MariaDB Enterprise Server 11.4. The upgrade process involves significant changes, particularly to the query optimizer, which was rewritten in version 11.0. While performance is generally improved, query execution plans may change.
This guide provides two strategies:
Standard In-Place Upgrade: The direct procedure for upgrading an existing node.
Staged Rollout (Recommended for Mission-Critical Systems): A low-risk approach using replication and validation.
Building MariaDB on Windows
Guide to building MariaDB on Windows using Visual Studio, CMake, and Git, including creating ZIP and MSI packages.
Build Requirements
To build MariaDB you need the following:
: We currently support Visual Studio 2019 and 2022. Generally we try to support the two most recent VS versions, but build ourselves using the last one. Community editions will work fine; we only use them in our builds.
While installing Visual Studio, make sure to add "Desktop Development with C++".
Also, make sure to use
deb http://ftp.osuosl.org/pub/mariadb/mariadb-5.5.32/repo/{os} {dist} main
deb http://ftp.osuosl.org/pub/mariadb/mariadb-5.5.32/repo/debian wheezy main
deb http://ftp.osuosl.org/pub/mariadb/mariadb-5.5.32/repo/ubuntu raring main
apt-cache show mariadb-server | grep Version
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
libmariadbclient18 : Depends: libmysqlclient18 (= 5.5.32+maria-1~wheezy) but 5.5.33+maria-1~wheezy is installed
libmysqlclient18 : Depends: libmariadbclient18 (= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
mariadb-client-5.5 : Depends: libmariadbclient18 (>= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
mariadb-client-core-5.5 : Depends: libmariadbclient18 (>= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
mariadb-server : Depends: mariadb-server-5.5 (= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
mariadb-server-core-5.5 : Depends: libmariadbclient18 (>= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
The following packages have unmet dependencies:
libmariadbclient18 : Depends: libmysqlclient18 (= 5.5.32+maria-1~wheezy) but 5.5.33+maria-1~wheezy is installed
libmysqlclient18 : Depends: libmariadbclient18 (= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
mariadb-client-5.5 : Depends: libmariadbclient18 (>= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
mariadb-client-core-5.5 : Depends: libmariadbclient18 (>= 5.5.33+maria-1~wheezy) but 5.5.32+maria-1~wheezy is installed
The following packages have unmet dependencies:
libmariadbclient18: Depends: libmysqlclient18 (= 5.5.32+maria-1~lucid) but 5.5.33+maria-1~lucid is installed
libmysqlclient18: Depends: libmariadbclient18 (= 5.5.33+maria-1~lucid) but 5.5.32+maria-1~lucid is installed
deb http://ftp.debian.org/debian buster main contrib
deb http://security.debian.org buster/updates main contrib
deb-src http://ftp.debian.org/debian buster main contrib
deb-src http://security.debian.org buster/updates main contrib
$ ls ../*.rpm
../MariaDB-shared-10.1.17-centos7-x86_64.rpm
../MariaDB-shared-5.3.12-122.el5.x86_64.rpm
$ cmake -DRPM=centos7 .
...
Using ../MariaDB-shared-5.3.12-122.el5.x86_64.rpm to build MariaDB-compat
Using ../MariaDB-shared-10.1.17-centos7-x86_64.rpm to build MariaDB-compat
$ rm CMakeCache.txt
082A
1BB9
43DB
They can be installed by anyone to any path, including one's home directory.
You can have any number of different MariaDB installations on the same machine. This is often desired during upgrades when one wants to have the old installation running until switching to the new one.
You can use them on systems for which MariaDB does not support native packages.
groupadd mysql
useradd -g mysql mysql
cd /usr/local
tar -zxvpf /path-to/mariadb-VERSION-OS.tar.gz
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mariadb-install-db --user=mysql
chown -R root .
chown -R mysql data
./bin/mariadbd-safe --user=mysql &
or
./bin/mariadbd-safe --defaults-file=~/.my.cnf --user=mysql &
export PATH=$PATH:/usr/local/mysql/bin/
cd /usr/local
gunzip < /path-to/mariadb-VERSION-OS.tar.gz | tar xf -
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mariadb-install-db --defaults-file=~/.my.cnf
has dominant effect hence removal from Debian default settings
In contrast, MariaDB Server is dynamically linked with the system's OpenSSL libraries in .deb packages provided by MariaDB Foundation and MariaDB Corporation.
MariaDB's clients and utilities and are dynamically linked with the system's GnuTLS libraries in .deb packages provided by Debian's and Ubuntu's default repositories. libmysqlclient is still statically linked with the bundled wolfSSL libraries.
MariaDB's clients and utilities and are dynamically linked with the system's GnuTLS libraries in .deb packages provided by Debian's and Ubuntu's default repositories. libmysqlclient is still statically linked with the bundled yaSSL libraries.
In contrast, MariaDB's clients and utilities, , and are dynamically linked with the system's libraries in packages provided by MariaDB Foundation's and MariaDB Corporation's repositories.
This section details the standard procedure for performing an in-place upgrade. This involves replacing the server binaries while keeping the data directory intact.
1
Backup Database
Before performing any upgrade, it is critical to perform a full backup of your database. MariaDB Backup (mariadb-backup) is recommended for this purpose.
2
Modify Repository Configuration
Update your system's package manager repository to point to MariaDB Enterprise Server 11.4. You will need to regenerate your repository configuration command using the .
3
Stop MariaDB Service
Stop the running mariadbd process to release locks on the data files.
4
Uninstall Old Version
Remove the existing MariaDB 10.6 packages. This removes the binaries but preserves the configuration and data directory.
5
Install New Version
Install the new MariaDB 11.4 packages.
6
Update Configuration (Critical)
Before starting the server, you must update your option files (e.g., my.cnf) to remove unsupported parameters.
7
Start MariaDB Service
Start the new mariadbd process.
8
Run mariadb-upgrade (Critical)
Execute mariadb-upgrade to check and update system tables to be compatible with the new version.
Part 2: Alternative Strategy: Staged Rollout for Mission-Critical Systems
For environments sensitive to performance changes or requiring zero downtime, the following staged rollout strategy is recommended.
1
Introduce Replica
Provision a new server with MariaDB Enterprise Server 11.4 and configure it as a Replica of your existing 10.6 Primary server.
Perform Backup on Primary (10.6): Use mariadb-backup to create a consistent, non-blocking physical backup.
Prepare the Backup: Prepare the backup to ensure consistency (this can be done on the Primary or the Replica).
Restore on Replica (11.4): Transfer the backup to the new 11.4 server, stop the service, and restore.
Start and Configure Replication: Start the 11.4 server and configure it to replicate from the 10.6 Primary.
Log in to the 11.4 Replica and enable replication. (Note: Ensure server_id is unique in my.cnf).
2
Validate and Compare (Recommended)
To proactively catch performance regressions caused by the optimizer rewrite, use MaxScale with the Diff Router(Enterprise feature).
Configure MaxScale Ensure your MaxScale maxscale.cnf
3
Shift Read Traffic
Gradually migrate read-only traffic to the 11.4 replica.
Update MaxScale Routing If using MaxScale, you can adjust the server weights or maintenance modes to direct read traffic.
4
Promote to Primary
Once the 11.4 replica has been validated under load, promote it to be the Primary node.
Stop Replication on 11.4 Replica
5
Shift Application Traffic
Direct your application traffic to the new 11.4 Primary. Ensure you perform a mariadb-upgrade on the new Primary if it hasn't been run yet (though mariadb-backup restore usually preserves the old system tables, running upgrade is a safety step to ensure system tables are fully compatible with 11.4).
Part 3: Critical Upgrade Information
1
Optimizer Changes and Application Testing
The Query Optimizer was rewritten in version 11.0. While performance is generally better, query plans can change. It is vital to perform validation (as described in the Staged Rollout section) to catch regressions before production deployment. You should also run ANALYZE TABLE on major tables after upgrading to update statistics.
2
Required Configuration Changes
The following variables must be addressed in your configuration files (my.cnf) to prevent startup failures or warnings:
optimizer_adjust_secondary_key_costs: MUST REMOVE. This variable has no effect in 11.4 as features are integrated into the new cost model.
3
Backward Replication Compatibility
You can replicate from a MariaDB 11.4 Primary to a MariaDB 10.6 Replica (Backward Replication) under specific conditions:
No new features specific to 11.4 (e.g., new JSON functions,
4
System-Versioned Tables Conversion
If using System-Versioned Tables, the row_end column format must be updated to support the extended TIMESTAMP range (up to year 2106).
- latest Windows 11 SDK is recommended.
CMake: We recommend the latest release. Older releases might not support your version of Visual Studio. Visual Studio 2019 requires cmake 3.14 at least.
Git: Required to
build newer versions from the source tree.
NOTE: run
after the installation, otherwise some mtr tests will fail
In the "Adjusting your PATH" dialog, choose "Use Git from Windows command prompt", otherwise wrong (mingw64) git and perl will be in your PATH
Bison from GnuWin32:
Bison creates parts of the SQL parser. Choose "Complete package except
sources" when downloading.
NOTE: Do not install this into your default path with spaces
(e.g. under C:\Program Files\GnuWin32); the build will break due to this bison bug.
Instead, install into C:\GnuWin32.
Add C:\GnuWin32\bin to your system PATH after installation.
: Used to run the test suite. is
another Win32 Perl distribution and should work as well (but it is not as
well tested). NOTE: Cygwin or mingw Perl versions will not work for testing. Use Windows native Perl, please.
Optional: If you intend to build the MSI packages, install . If you build MSI with 10.4,
also modify your Visual Studio installation, add "Redistributable MSMs" (see )
, needed if you run mysql-test-run.pl tests.
Verify that bison.exe, or git.exe, cmake.exe and perl.exe can be found in the PATH
environment variable with "where bison", "where git", "where perl" etc. from
the command line prompt.
Building Windows Binaries
The above instructions assume or higher.
Branch the MariaDB repository, or unpack the source archive. On the command
prompt, switch to your source directory, then execute:
The above example builds a release configured for 64 bit systems in a
subdirectory named bld. "cmake ..." is the configuration step,
"cmake --build . --config Relwithdebinfo" is the build step.
Build Variations
Debug Builds
Building Debug version is done with:
32bit and 64 bit Builds
Build 64 bit binary
Visual Studio 2019-2022 cmake generator will use host architecture by default, that is, with the steps above, cmake will build x64 binaries on x64 machine.
Build 32 bit binary
pass -A Win32 parameter for cMake, like this
Historical note:
With Visual Studio 2017 and earlier, one had to pass the name of 32bit generator ,e.g
cmake .. -G "Visual Studio 15 2017
For a complete list of available generators, call cmake without any parameters.
IDE Builds
Instead of calling "cmake --build" as above, open solution file MariaDB.sln (in older versions, prior to 11.0, MySQL.sln ). When Visual Studio starts, choose Build/Compile.
Building the ZIP Package
This is how it is "done by the book", standard cmake target.
MariaDB however uses non-standard target win_package for the packaging for its releases, it generates 2 ZIPs, a slim one with executables, and another one with debuginfo (.PDB files). The debuginfo is important to be able to debug released binaries, and to analyze crashes.
Building the MSI Package
Including HeidiSQL in the MSI Installer
Starting with , it is possible to build an installer which
includes 3rd party products, as described in MWL#200. Currently only HeidiSQL support is implemented; it is also
included in the official builds. Use the CMake parameter-DWITH_THIRD_PARTY=HeidiSQL to include it in the installer.
Code Signing
MariaDB builds optionally support authenticode code signing with an optional
parameter SIGNCODE. Use cmake -DSIGNCODE=1 during the
configuration step to sign the binaries in the ZIP and MSI packages.
Important: for SIGNCODE=1 to work, the user that runs the build needs to
install a valid authenticode digital certificate into their certificate store,
otherwise the packaging step will fail.
Building Packages for MariaDB Releases
The full script to create the release in an out-of-source build with Visual
Studio with signed binaries might look like:
This command sequence will produce a ZIP package (e.g mariadb-5.2.6-win32.zip)
and MSI package (e.g mariadb-5.2.6-win32.msi) in the bld directory.
Running Tests
Important: Do not use Cygwin bash, MinGW bash, Git bash, WSL bash, or any other bash when running the test suite. You will then very likely use the wrong version of Perl too (a "Unix-flavoured" one on Windows), and spend a lot of time trying to figure out why this version of Perl does not work for the test suite. Use native perl, in cmd.exe , or powershell instead,
Switch mysql-test subdirectory of the build directory
Run the test suite
Running a Test Under Debugger
Assuming VS is installed on the machine
If vsjitdebugger does not start, you can edit AeDebug registry key as mentioned in
"all" was found to cause performance loss in certain workloads.
innodb_log_files_in_group
2
1
Redo logs are no longer split; additional files are ignored.
innodb_buffer_pool_instances
8
1
Multiple instances no longer reduce contention and are ignored.
slave_parallel_mode
conservative
optimistic
Speeds up replication by default.
Installing MariaDB on macOS
How to install MariaDB Server on macOS using the Homebrew package manager, including starting the service and securing the installation.
MariaDB Server is available for installation on macOS via the Homebrew package manager. MariaDB Server (together with many client programs and helper tools) is available as a Homebrew "bottle", a precompiled package. If you haven't yet installed Homebrew, see this section.
Installing & Starting MariaDB
Install MariaDB Server:
This can take several minutes to complete, depending on hardware, network, and other factors.
Start MariaDB Server:
Alternatively, and strongly recommended, automatically start MariaDB Server:
Automatically starting MariaDB server installs a background service on macOS. Make sure to allow adding that background service. See for more information.
Connecting to MariaDB Server
After MariaDB Server has started, you can connect to the server using the shell user name (see for information on the user):
Alternatively, connect as root:
For graphical clients you can use instead of the mariadb command-line client, see .
Upgrading MariaDB
Update Homebrew packages:
Then upgrade MariaDB Server:
Notes & Further Information
Homebrew Installation
Install Homebrew like this:
Open a Terminal (⌘ + Space to open Spotlight, type Terminal).
Issue this command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Alternatively, use the package installer (.pkg
MariaDB Configuration
In Homebrew, the configuration file for MariaDB is located at:
/usr/local/etc/my.cnf for Intel-based Macs.
/opt/homebrew/etc/my.cnf for Apple Silicon Macs (ARM architecture).
MariaDB Information
Find information about the MariaDB version, analytics, and more, using the brew info command:
MariaDB Programs
MariaDB Server (mariadbd), the MariaDB command-line client (mariadb), and many more clients and tools are installed in /opt/homebrew/Cellar/mariadb (for Apple Silicon Macs). Find the location for your machine, as well as the MariaDB programs installed, with these commands:
Terminal User & MariaDB User
To find out which user is used, issue these commands in a shell like Terminal:
macOS Background Service
If you start MariaDB automatically, a macOS background service is added. You can find the MariaDB background service in System Settings > General > Login Items & Extensions. It's named mariadbd-safe.
The toggle switch allows you to turn off the automatic start of MariaDB. This prevents MariaDB Server from automatically starting once you reboot macOS.
To review the resource usage of MariaDB Server, use this command (type q to exit topwhen done):
Graphical Clients
MariaDB doesn't offer graphical clients for working with MariaDB Server, but there are , some of which run on macOS. One of those is , a subscription-based client that has a (not too) , though.
Assuming a standard Homebrew installation of MariaDB, and assuming you connect to MariaDB Server , configure Beekeeper Studio like this:
Connection type: MariaDB
Authentication method: Username/Password
Connection mode: Socket
Socket path: /tmp/mysql.sock
Once connected to MariaDB Server, you can run queries in Beehive Studio:
The query shown in this screenshot uses a MariaDB sample database called nation which you can use to get familiar with MariaDB. See for more information.
MariaDB Sample Database
MariaDB offers a sample database you can use to get familiar with using MariaDB. You can download it here:
Unzip nation.zip, then import the database into MariaDB Server, using this command (assuming you downloaded and unzipped the sample database in the Downloads folder):
When done, use that database in the mariadb command-line client, like this:
Alternatively, open the database in .
Building MariaDB Server from source
In addition to the "bottled" MariaDB Server package available from Homebrew, you can use Homebrew to build MariaDB from source. This is useful if you want to use a different version of the server or enable some different capabilities that are not included in the bottle package.
Two components not included in the bottle package are the CONNECT and OQGRAPH engines, because they have non-standard dependencies. To build MariaDB Server with these engines, you must first install boost and judy. Follow these steps to install the dependencies and build the server:
You can also use Homebrew to build and install a pre-release version of MariaDB Server. Use this command to build and install a "development" version of MariaDB Server:
Other resources
(video)
This page is licensed: CC BY-SA / Gnu FDL
Upgrade MariaDB Enterprise Server from 11.4.X to 11.4.Y
Instructions for upgrading to MariaDB Enterprise Server 11.4, which introduces new data types like UUID and INET4, advanced JSON functions, and non-blocking online schema changes.
These instructions detail a minor release upgrade with MariaDB Enterprise Server 11.4 on a range of .
A minor release upgrade is a change from an earlier release of MariaDB Enterprise Server 11.4 to a later release in the same release series.
For example, it would be a minor release upgrade to upgrade from MariaDB Enterprise Server 11.4.4-2 to MariaDB Enterprise Server 11.4.5-3.
Data Backup
Installing MariaDB with yum/dnf
How to install MariaDB on systems that use the yum or dnf package managers
On RHEL, CentOS, Fedora, and other similar Linux RPM based distributions, these provide MariaDB packages. These are supported by those distributions. If you have a particular need for a later version than what is in the distribution, then MariaDB provides repositories for them.
Using repositories rather than installing RPM allows for an ease of update when a new release is made. It is highly recommended to install the relevant from MariaDB's
repository using or . Centos 7 still uses yum, most others use dnf, and SUSE/openSUSE use zypper.
This page walks you through the simple installation steps using dnf and yum
Installing MariaDB on IBM Cloud
Step-by-step instructions for deploying MariaDB on IBM Cloud Kubernetes Service, including provisioning clusters and configuring storage.
Get MariaDB on IBM Cloud.
You should have an IBM Cloud account, otherwise you can .
At the end of the tutorial you will have a cluster with MariaDB up and running. IBM Cloud uses Bitnami charts to deploy MariaDB on with helm
We will provision a new Kubernetes Cluster for you if, you already have one skip to step 2
We will deploy the IBM Cloud Block Storage plug-in, if already have it skip to step 3
~> brew info mariadb
==> mariadb: stable 12.1.2 (bottled)
Drop-in replacement for MySQL
https://mariadb.org/
...
To restart mariadb after an upgrade:
brew services restart mariadb
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/mariadb/bin/mariadbd-safe --datadir\=/opt/homebrew/var/mysql
==> Analytics
install: 6,319 (30 days), 12,735 (90 days), 62,444 (365 days)
install-on-request: 6,291 (30 days), 12,670 (90 days), 62,137 (365 days)
build-error: 8 (30 days)
~> which mariadb
/opt/homebrew/bin/mariadb # in the next command, use this location to cd to
~> cd /opt/homebrew/bin/; ls -1 maria*
mariabackup
mariadb
mariadb-access
...
mariadbd
mariadbd-multi
mariadbd-safe
mariadbd-safe-helper
~> mariadb nation
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 12.1.2-MariaDB Homebrew
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [nation]> SHOW TABLES;
+-------------------+
| Tables_in_nation |
+-------------------+
| continents |
| countries |
| country_languages |
| country_stats |
| guests |
| languages |
| region_areas |
| regions |
| vips |
+-------------------+
9 rows in set (0.001 sec)
Ensure innodb_fast_shutdown is set to 1 and check for open XA transactions before stopping.
Remove innodb_defragment: This variable and its associated options (e.g., innodb_defragment_fill_factor) have been removed.
Remove optimizer_adjust_secondary_key_costs: This variable has no effect in 11.4 and must be removed.
Check innodb_flush_method: This variable is deprecated in 11.4.
defines both the existing service (routing to 10.6) and the new 11.4 server definition.
Create the Diff Service Use maxctrl to create a "Diff" service that compares the output of your existing production server against the new 11.4 replica.
3. Analyze Results MaxScale will generate JSON reports in its log directory (e.g., /var/lib/maxscale/diff/). Analyze these files to identify queries that return different results or have significantly higher latency on the 11.4 server.
Alternatively, update your application connection strings to point to the 11.4 Replica's IP for reporting modules.
Enable Writes on 11.4 New Primary
Direct Traffic Update MaxScale or your application configuration to point to the new 11.4 Primary.
innodb_defragment: MUST REMOVE. This variable has been removed.
des_encrypt / des_decrypt: Functions have been removed.
UUID
data type) are used in DML or DDL.
The variable binlog_alter_two_phase must be set to 0 (default) on the 11.4 Primary.
Use the new --update-history option with mariadb-dump to convert row_end values during export.
Use ALTER TABLE to convert the tables after upgrade.
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using MariaDB Backup. For more information about backing up and restoring the database, please see the Recovery Guide.
Take a full backup.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
Stop the MariaDB Server Process
Before the new version can be installed, we first need to stop the current MariaDB Server process.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 11.4.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Install via ZYpp (SLES)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Start
sudo systemctl start mariadb
Stop
sudo systemctl stop mariadb
Restart
sudo systemctl restart mariadb
Enable during startup
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called mariadb (ES10.4 and later) or mysql (ES10.3, ES10.2):
You can also verify the server version by checking the value of the version system variable with the SHOW GLOBAL STATUS statement:
You can also verify the server version by calling the function:
We currently have YUM/DNF repositories for the following Linux distributions, and for the versions that are in standard (not extended) support:
Red Hat Enterprise Linux (RHEL)
CentOS
Fedora
openSUSE
SUSE
Using the MariaDB Package Repository Setup Script
MariaDB provides two helpful scripts for setting up repositories, one for MariaDB Community Server named mariadb_repo_setup, and one for MariaDB Enterprise Server named mariadb_es_repo_setup.
Using the MariaDB Foundation Repository Configuration Tool
Visit https://mariadb.org/download/?t=repo-config and follow the instructions from there. It will ask for your Linux distribution, desired MariaDB version, and the mirror to use, and will show what files to edit and what commands to run to configure a repository.
Pinning the MariaDB Repository to a Specific Minor Release
If you wish to pin your yum or dnf repository to a specific minor release, or if you would like to downgrade to a specific minor release, then you can configure a repository with the URL hard-coded to that specific minor release.
By default the Foundation's tool configures repositories with just the main series of MariaDB, e.g. mariadb-11.8, and to pin to a specific version you need to specify the full version, for example mariadb-11.8.6.
The full list of MariaDB Community Server releases can be found on the page.
For example, to pin your repository to MariaDB 11.8.6 on RHEL/Alma/Rocky 8, 9, or 10, then you could use the following repository configuration in /etc/yum.repos.d/MariaDB.repo:
After updating the repository configuration, it is a good idea to clean the repository metadata with:
Updating the MariaDB YUM repository to a New Major Release
MariaDB's yum repository can be updated to a new major release. How this is done depends on how you originally configured the repository.
Updating the Major Release with the MariaDB Package Repository Setup Script
If you configured yum to install from MariaDB Corporation's MariaDB Package Repository by using the MariaDB Package Repository setup script, then you can update the major release that the repository uses by running the script again.
Updating the Major Release with the MariaDB Repository Configuration Tool
If you configured yum to install from MariaDB Foundation's MariaDB Repository by using the MariaDB Repository Configuration Tool, then you can update the major release that the repository uses by updating the yum repository configuration file in-place. For example, if you wanted to change the repository from MariaDB 10.6 to MariaDB 10.11, and if the repository configuration file was at /etc/yum.repos.d/MariaDB.repo, then you could execute the following:
After that, the repository should refer to MariaDB 10.11.
If the yum repository is pinned to a specific minor release, then the above sed command can result in an invalid repository configuration. In that case, the recommended options are:
Edit the MariaDB.repo repository file manually.
Or delete the MariaDB.repo repository file, and then install the repository of the new version with the more robust MariaDB Package Repository setup script.
The MariaDB GPG Key
See the GPG page for information on the various keys used by MariaDB.
Installing MariaDB Packages with YUM/DNF
After the dnf/yum repository is configured, you can install MariaDB by executing the dnf or yum command. The specific command that you would use would depend on which specific packages that you want to install.
Installing the Most Common Packages
To Install the most common packages, execute the following command:
Installing MariaDB Server
To Install MariaDB Server, execute the following command:
Installing MariaDB Galera Cluster with YUM
The process to install MariaDB Galera Cluster with the MariaDB yum repository is practically the same as installing standard MariaDB Server.
You need to install the galera-4 package to obtain the Galera 4 wsrep provider library.
To install MariaDB Galera Cluster, you could execute the following command:
If you haven't yet imported the MariaDB GPG public key, then yum will prompt you to
import it after it downloads the packages, but before it prompts you to install them.
For example, to install the cracklib_password_check password validation plugin, execute the following command:
Installing Debug Info Packages with YUM
The MariaDB yum repository also contains debuginfo packages. These package may be needed when .
Installing Debug Info for the Most Common Packages with YUM
To install debuginfo for the most common packages, execute the following command:
All packages have their debuginfo by appending -debuginfo to the package name.
Installing Debug Info for MariaDB Server with YUM
To install debuginfo for MariaDB Server, execute the following command:
Installing Older Versions from the Repository
The MariaDB yum repository contains the last few versions of MariaDB. To show what versions are available, use the following command:
The output shows the available versions. For example:
The MariaDB repository in this example contains MariaDB 12.1.2, 12.0.2, and 11.8.2; and the appstream repository contains MariaDB 10.3.39.
To install an older version of a package instead of the latest version we just need to specify the package name, a dash, and then the version number. And we only need to specify enough of the version number for it to be unique from the other available versions.
However, when installing an older version of a package, if dependencies need to be installed, then it will automatically choose to install the latest versions of those packages, which can sometimes break those dependencies. To ensure that all MariaDB packages are on the same version in this scenario, it is necessary to specify them all.
The MariaDB packages that the MariaDB-server package depend on are: MariaDB-client, MariaDB-shared, and MariaDB-common. Therefore, to install MariaDB 12.0.2 from this yum
repository, we could do the following (putting the version in a variable and each package on its own line so things are cleaner):
For MariaDB Enterprise it is necessary to specify the release part of the version number as well, but with an underscore (_) instead of a dash (-), as that is how dnf/yum see the version number. For example, for MariaDB Enterprise Server 11.8.5-2 you would specify the version as 11.8.5_2. For example:
The rest of the install and setup process is as normal.
After Installation
After the installation is complete, you can start MariaDB with:
If you are using MariaDB Galera Cluster, then keep in mind that the first node will have to be .
The free plan includes one worker node and no subnet.
To provision a standard cluster, upgrade your account to Pay-As-You-Go.
To upgrade to a Pay-As-You-Go account, follow these steps:
In the console, go to Manage > Account.
Select Account settings, and click Add credit card.
Enter your payment information, click Next, and submit your information.
Choose between classic or VPC after reviewing the documentation to determine the most suitable option.
infra-select
Now choose your location settings, for more information please visit Locations
Choose Geography (continent)
location-geo
Select either Single-Zone or Multi-Zone storage. Single Zone stores your data in one data center, while Multi-Zone distributes your data across multiple zones, offering greater safety in the event of unexpected zone failures.
location-avail
Choose a Worker Zone if using Single zones or Metro if Multizone
location-worker
Set up your account with VRF or enable VLAN spanning to use Multizone.
If no Virtual LAN is available at your selected location, a new VLAN will be created for you.
Choose a Worker node setup or use the preselected one.
Set the Worker node per zone.
worker-pool
Choose Master Service Endpoint, In VRF-enabled accounts, you can choose Private endpoint only to make your master accessible on the private network or via VPN tunnel. Choose Public endpoint only to make your master publicly accessible. When you have a VRF-enabled account, your cluster is set up by default to use Both private and public endpoints. For more information visit endpoints.
endpoints
Give Cluster name
name-new
Give desired Tags to your cluster, for more information visit tags
tasg-new
Click Create
create-new
Wait for you cluster to be provisioned
cluster-prepare
Your cluster is ready for usage
cluster-done
Step 2 deploy IBM Cloud Block Storage plug-in
The Block Storage plug-in is a persistent, high-performance iSCSI storage that you can add to your apps by using Kubernetes Persistent Volumes (PVs).
Click the Catalog button on the top
Select Software from the catalog
Search for IBM Cloud Block Storage plug-in and click on it
block-search
On the application page, select the cluster you wish to use
Click on Enter or select namespace and choose the default Namespace or use a custom one (if you get error please wait 30 minutes for the cluster to finalize)
block-cluster
Give a Name to this workspace
Click Install and wait for the deployment
block-storage-create
Step 3 deploy MariaDB
We will deploy MariaDB on our cluster
Click the Catalog button on the top
Select Software from the catalog
Search for MariaDB and click on it
search
Please select IBM Kubernetes Service
target-select
On the application page, select the cluster you wish to use
cluster-select
Click on Enter or select namespace and choose the default Namespace or use a custom one
details-namespace
Give a unique name to workspace, which you can easily recognize
details-name
Select which Resource Group you want to use, it's for access controll and billing purposes. For more information please visit resource groups
details-resource
Give Tags to your MariaDB, for more information visit tags
details-tags
Click on Parameters with default values, You can set deployment values or use the default ones
parameters
Please set the MariaDB root password in the parameters
root-password
After finishing everything, tick the box next to the agreements and click Install
aggreement-create
The MariaDB workspace will start installing, wait a couple of minutes
in-progress
Your MariaDB workspace has been successfully deployed
Detailed steps for installing MariaDB on SLES and OpenSUSE using the `zypper` package manager, including repository configuration and package installation.
On SLES, OpenSUSE, and other similar Linux distributions, it is highly recommended to install the relevant RPM packages from MariaDB's repository using zypper.
This page walks you through the simple installation steps using zypper.
Adding the MariaDB ZYpp repository
We currently have ZYpp repositories for the following Linux distributions:
SUSE Linux Enterprise Server (SLES) 12
SUSE Linux Enterprise Server (SLES) 15
OpenSUSE 15
OpenSUSE 42
Using the MariaDB Package Repository Setup Script
If you want to install MariaDB with zypper, then you can configure zypper to install from MariaDB Corporation's MariaDB Package Repository by using the .
MariaDB Corporation provides a MariaDB Package Repository for several Linux distributions that use zypper to manage packages. This repository contains software packages related to MariaDB Server, including the server itself, , , , and . The MariaDB Package Repository setup script automatically configures your system to install packages from the MariaDB Package Repository.
To use the script, execute the following command:
Note that this script also configures a repository for and a repository for MariaDB Tools, which currently only contains and its dependencies.
See for more information.
Using the MariaDB Repository Configuration Tool
If you want to install MariaDB with zypper, then you can configure zypper to install from MariaDB Foundation's MariaDB Repository by using the .
The MariaDB Foundation provides a MariaDB repository for several Linux distributions that use zypper to manage packages. This repository contains software packages related to MariaDB Server, including the server itself, , , , and . The MariaDB Repository Configuration Tool can easily generate the appropriate commands to add the repository for your distribution.
For example, if you wanted to use the repository to install on SLES 15, then you could use the following commands to add the MariaDB zypper repository:
Pinning the MariaDB Repository to a Specific Minor Release
If you wish to pin the zypper repository to a specific minor release, or if you would like to downgrade to a specific minor release, then you can create a zypper repository with the URL hard-coded to that specific minor release.
If you used to generate your repository configuration, simply re-run the script and specify the full version number to use with the --mariadb-server-version option.
See on the page for details.
The full list of MariaDB Enterprise Server releases can be found on the page.
If you used the , then you need to update the repository file you created to include the full version number to use on the baseurl line.
By default the Foundation's tool configures repositories with just the main series of MariaDB, e.g.
Updating the MariaDB ZYpp repository to a New Major Release
MariaDB's zypper repository can be updated to a new major release. How this is done depends on how you originally configured the repository.
Updating the Major Release with the MariaDB Package Repository Setup Script
If you configured zypper to install from MariaDB Corporation's MariaDB Package Repository by using the , then you can update the major release that the repository uses by running the script again.
Updating the Major Release with the MariaDB Repository Configuration Tool
If you configured zypper to install from MariaDB Foundation's MariaDB Repository by using the , then you can update the major release that the repository uses by removing the repository for the old version and adding the repository for the new version.
First, you can remove the repository for the old version by executing the following command:
After that, you can add the repository for the new version. For example, if you wanted to use the repository to install on SLES 15, then you could use the following commands to add the MariaDB zypper repository:
After that, the repository should refer to .
Importing the MariaDB GPG Public Key
Before MariaDB can be installed, you also have to import the GPG public key that is used to verify the digital signatures of the packages in our repositories. This allows the zypper and rpm utilities to verify the integrity of the packages that they install.
See the page for information on the various keys used by MariaDB.
The utility can be used to import this key. For example:
Once the GPG public key is imported, you are ready to install packages from the repository.
Installing MariaDB Packages with ZYpp
After the zypper repository is configured, you can install MariaDB by executing the command. The specific command that you would use would depend on which specific packages that you want to install.
Installing the Most Common Packages with ZYpp
To Install the most common packages, execute the following command:
Installing MariaDB Server with ZYpp
To Install MariaDB Server, execute the following command:
Installing MariaDB Galera Cluster with ZYpp
The process to install MariaDB Galera Cluster with the MariaDB zypper repository is practically the same as installing standard MariaDB Server.
Galera Cluster support has been included in the standard MariaDB Server packages, so you will need to install the MariaDB-server package, as you normally would.
You also need to install the galera-4 package to obtain the 4 wsrep provider library.
To install MariaDB Galera Cluster, you could execute the following command:
If you haven't yet imported the MariaDB GPG public key, then zypper will prompt you to
import it after it downloads the packages, but before it prompts you to install them.
See for more information on MariaDB Galera Cluster.
Installing MariaDB Clients and Client Libraries with ZYpp
has been included as the client library. However, the package name for the client library has not been changed.
To Install the clients and client libraries, execute the following command:
Installing mariadb-backup with ZYpp
To install , execute the following command:
Installing Plugins with ZYpp
Some may also need to be installed.
For example, to install the password validation plugin, execute the following command:
Installing Debug Info Packages with ZYpp
The MariaDB zypper repository also contains packages. These package may be needed when .
Installing Debug Info for the Most Common Packages with ZYpp
To install for the most common packages, execute the following command:
Installing Debug Info for MariaDB Server with ZYpp
To install for MariaDB Server, execute the following command:
Installing Debug Info for MariaDB Clients and Client Libraries with ZYpp
has been included as the client library. However, the package name for the client library has not been changed.
To install for the clients and client libraries, execute the following command:
Installing Debug Info for mariadb-backup with ZYpp
To install for , execute the following command:
Installing Debug Info for Plugins with ZYpp
For some , may also need to be installed.
For example, to install for the password validation plugin, execute the following command:
Installing Older Versions from the Repository
The MariaDB zypper repository contains the last few versions of MariaDB. To show what versions are available, use the following command:
In the output you will see the available versions.
To install an older version of a package instead of the latest version we just
need to specify the package name, a dash, and then the version number. And we
only need to specify enough of the version number for it to be unique from the
other available versions.
However, when installing an older version of a package, if zypper has to install dependencies, then it will automatically choose to install the latest versions of those packages. To ensure that all MariaDB packages are on the same version in this scenario, it is necessary to specify them all.
The packages that the MariaDB-server package depend on are: MariaDB-client,
MariaDB-shared, and MariaDB-common. Therefore, to install from this zypper
repository, we would do the following:
The rest of the install and setup process is as normal.
After Installation
After the installation is complete, you can .
If you are using , then keep in mind that the first node will have to be .
This page is licensed: CC BY-SA / Gnu FDL
Upgrade MariaDB Enterprise Server from 10.3.X to 10.3.Y
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
These instructions detail a minor release upgrade with MariaDB Enterprise Server 10.3 on a range of supported Operating Systems.
A minor release upgrade is a change from an earlier release of MariaDB Enterprise Server 10.3 to a later release in the same release series.
For example, it would be a minor release upgrade to upgrade from MariaDB Enterprise Server 10.3.38-19 to MariaDB Enterprise Server 10.3.39-20.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Enterprise Server 10.4 and later:
Stop the MariaDB Server Process
Before the new version can be installed, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external in a prepared state:
Commit or rollback any open XA transactions before stopping the node for upgrade.
Stop the server process:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called in MariaDB Enterprise Server 10.4 and later:
And the utility is called in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called (ES10.4 and later) or mysql (ES10.3, ES10.2):
You can also verify the server version by checking the value of the system variable with the statement:
Upgrade guide for MariaDB Enterprise Server 11.8, highlighting significant performance improvements in transactional throughput, new vector search optimizations, and enhanced observability features.
Overview
These instructions detail the upgrade from a previous version of MariaDB Enterprise Server to MariaDB Enterprise Server 11.8 on a range of .
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
See .
Using MariaDB with TCMalloc or jemalloc
Instructions on building and configuring MariaDB to use alternative memory allocators like TCMalloc or jemalloc for improved performance and profiling.
Read the page for more information on how to debug high memory consumption.
Using tcmalloc or jemalloc
Installing MariaDB MSI Packages on Windows
Complete MariaDB installation guide. Complete setup instructions for Linux, Windows, and macOS with configuration and verification for production use.
MSI packages is available for x64 (64 bit) processor architectures and, in some older releases only, for x86 (32 bit). We use screenshots from an x64 installation in the following.
Installation UI
This is the typical mode of installation. To start the installer, click on the mariadb-...msi.
Upgrade MariaDB Enterprise Server from 10.5.X to 10.5.Y
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
These instructions detail a minor release upgrade with MariaDB Enterprise Server 10.5 on a range of supported Operating Systems.
A minor release upgrade is a change from an earlier release of MariaDB Enterprise Server 10.5 to a later release in the same release series.
For example, it would be a minor release upgrade to upgrade from MariaDB Enterprise Server 10.5.27-21 to MariaDB Enterprise Server 10.5.28-22.
Data Backup
Upgrade MariaDB Enterprise Server from 10.6.X to 10.6.Y
Upgrade documentation for MariaDB Enterprise Server 10.6, featuring Atomic DDL support, JSON_TABLE function, improved Oracle compatibility modes, and the removal of older storage engines.
These instructions detail a minor release upgrade with MariaDB Enterprise Server 10.6 on a range of .
A minor release upgrade is a change from an earlier release of MariaDB Enterprise Server 10.6 to a later release in the same release series.
For example, it would be a minor release upgrade to upgrade from MariaDB Enterprise Server 10.6.20-16 to MariaDB Enterprise Server 10.6.21-17.
Data Backup
sudo systemctl stop mariadb
sudo systemctl start mariadb
sudo mariadb-upgrade
# On the 10.6 Primary
sudo mariadb-backup --backup \
--user=backup_user \
--password=backup_password \
--target-dir=/data/backup/preupgrade_backup
-- On the 11.4 Replica
-- Set the GTID position (found in the xtrabackup_binlog_info file from the backup)
SET GLOBAL gtid_slave_pos = '0-1-12345'; -- Replace with your actual GTID
CHANGE MASTER TO
MASTER_HOST='10.6._primary_ip',
MASTER_USER='replication_user',
MASTER_PASSWORD='replication_password',
MASTER_USE_GTID=slave_pos;
START SLAVE;
# Put the 10.6 replicas into maintenance mode or lower their weight
maxctrl set server Primary10.6 maintenance
-- On the 11.4 Replica
STOP SLAVE;
RESET SLAVE ALL;
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 11.4.5-3-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| version | 11.4.5-3-MariaDB-Enterprise |
+---------------+-----------------------------+
sudo dnf list --showduplicates MariaDB-server
Last metadata expiration check: 0:01:42 ago on Fri 12 Dec 2025 03:47:20 PM UTC.
Available Packages
MariaDB-server.x86_64 11.8.2-1.el8 mariadb-main
MariaDB-server.x86_64 12.0.2-1.el8 mariadb-main
MariaDB-server.x86_64 12.1.2-1.el8 mariadb-main
mariadb-server.x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
,
10.5
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 11.4.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.4.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.3.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.4.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
Disable during startup
sudo systemctl disable mariadb
Status
sudo systemctl status mariadb
You can also verify the server version by calling the VERSION() function:
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup before upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using MariaDB Backup. For more information about backing up and restoring the database, please see the Recovery Guide.
1. Take a full backup. On MariaDB Enterprise Server 11.8 and later:
Confirm successful completion of the backup operation.
2. The backup must be prepared. On the MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the prepare operation.
3. Backups should be tested before they are trusted.
Audit Plugin Considerations
If you have the MariaDB Audit Plugin installed and are upgrading from MariaDB Enterprise Server 10.2 or 10.3, the audit plugin should be removed prior to the upgrade to prevent conflicts with the MariaDB Enterprise Audit Plugin, which MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later. It can be removed by using the UNINSTALL SONAME statement:
And if you load the plugin in a configuration file using the plugin\_load\_add option, then the option should also be removed. The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to a new major release of MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Enterprise Server before installing the new version of MariaDB Enterprise Server. Otherwise, the package manager will refuse to install the new version of MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Commit or roll back any open XA transactions before stopping the node for upgrade.
3. Stop the server process: For distributions that use systemd (most supported OSes), you can manage the server process using the systemctl command:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
1. Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
2. Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via APT (Debian, Ubuntu)
1. Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
2. Configure the APT package repository. Installable versions of MariaDB Enterprise Server are 11.8 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins. Configure MariaDB. Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via ZYpp (SLES)
1. Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
2. Configure the ZYpp package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Configuration
For platforms that use YUM or ZYpp as a package manager: MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back.
For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system's default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Start
sudo systemctl start mariadb
Stop
sudo systemctl stop mariadb
Restart
sudo systemctl restart mariadb
Enable during startup
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
1. Connect to the server using MariaDB Client using the root@localhost user account. MariaDB Client is called mariadb (ES 10.4 and later):
2. You can also verify the server version by checking the value of the version system variable with the SHOW GLOBAL STATUS statement:
3. You can also verify the server version by calling the VERSION() function:
is a malloc replacement library optimized for multi-threaded usage. It features a built-in heap debugger and profiler. Another malloc replacement that can speed up MariaDB is
.
The procedures to use one of these libraries with MariaDB are the same. Many other malloc replacement libraries (as well as heap debuggers and profilers) can be used with MariaDB in a similar fashion.
Prerequisites
jemalloc is a powerhouse for reducing memory fragmentation and improving concurrency, but it isn't a "one-size-fits-all" drop-in for every environment. Its availability and stability depend heavily on how the operating system handles memory pages and how MariaDB was compiled.
Operating System Availability
Linux: Jemalloc is most at home here. Most major distributions (Ubuntu, Debian, CentOS/RHEL, Arch) include it in their official repositories (libjemalloc2 or jemalloc). It is the standard recommendation for high-traffic MariaDB setups on Linux.
Windows: Jemalloc does not have the same "native" presence on Windows. While the jemalloc source code can technically be compiled for Windows using MSVC or MinGW, MariaDB for Windows is almost exclusively used with the default Windows system allocator. Most DBAs do not use jemalloc on Windows production servers.
FreeBSD: This is the "birthplace" of jemalloc – it replaced the system malloc in FreeBSD back in 2005. If you are running MariaDB on FreeBSD, you are likely using jemalloc by default at the OS level.
Hardware and Architecture Hurdles
One of the most common "hidden" failures occurs on non-x86 architectures:
Raspberry Pi (ARM): On newer devices like the Raspberry Pi 5, jemalloc often fails to start with the error: <jemalloc>: Unsupported system page size. This happens because jemalloc is frequently compiled assuming a 4KB page size, while many ARM kernels now use 16KB or 64KB pages for better performance.
Cloud Instances: Small instances (like AWS t2.micro) can sometimes behave unpredictably with jemalloc if they lack sufficient swap space or if the memory overhead of the jemalloc metadata conflicts with the tiny RAM footprint.
Compatibility Matrix Summary
Platform
Jemalloc Support
Typical Usage
Linux (x86_64)
Excellent
Highly recommended; installed via apt or yum.
FreeBSD
Native
It is the system default.
Check if it's Ready to Use
Before trying to force it via LD_PRELOAD, check if the library even exists on your system paths:
If these commands return nothing, you need to install the package first (sudo apt install libjemalloc2 or sudo dnf install jemalloc).
Why Use it
The main reason to switch isn't just speed, but fragmentation. Standard malloc can leave small gaps of unused memory that the OS can't reclaim, leading to "memory bloat" where MariaDB appears to use 10GB of RAM even if the data only needs 6GB. Jemalloc is much better at packing these allocations tightly.
Checking the malloc Implementation in Use
To check which malloc implementation is used, run this query:
A value of system indicates the system default, which is normally malloc. If another library is used, the name and version of the library is shown.
Building MariaDB With an Alternative to malloc
To build MariaDB with TCMalloc, you need to use the following command:
To use jemalloc, specify -ljemalloc instead of -ltcmalloc.
Starting mariadbd-safe With an Alternative to malloc
Start a standard MariaDB server with TCmalloc like this:
Pass that library file to mariadbd using the LD_PRELOAD variable:
Configuring systemd
If you use systemd to run MariaDB, locate the library as explained above, then locate the service configuration file:
Edit the mariadb.service file by adding a line to the [Service] group:
For example, add this:
Reload the configuration for the news setting to take effect, and restart MariaDB:
Dockerfile
If you run MariaDB on Docker and use an image from a Dockerfile that is publicly available, most probably you have an entry point that is a bash script, which starts mariadbd directly. Edit that bash script, or set the LD_PRELOAD variable from the Dockerfile:
To find the library file, run one of these commands while the container is running:
Example:
Vagrantfile
Usually Vagrant is used to start a complete system in a virtual machine. In that case, you can use one of the methods above, for example you can modify your Vagrantfile to copy a modified version of the mariadb.service file to the guest system to configure systemd.
If you use Vagrant with the Docker provider, you can follow the instructions above to modify the Dockerfile.
Making jemalloc Persistent
To make MariaDB use jemalloc persistently, set it up like this. These instructions work on Linux using systemd and running on an x86 architecture.
Steps
1
Identify the jemalloc library path.
Identify the jemalloc library path, to find the exact location of the jemalloc shared library on your system:
Take a note of the output path. Typically, it is something like /usr/lib64/libjemalloc.so.2.
2
Create or edit the MariaDB Systemd override file.
This is the crucial step for persistence. Use systemctl edit to manage the override file:
If an override file already exists for MariaDB, it opens in the editor. If not, the editor creates a new, empty file, typically at /etc/systemd/system/mariadb.service.d/override.conf
3
Restart services and MariaDB.
4
Reboot the computer, and verify that jemalloc is used.
You can verify this on various levels.
MariaDB:
Operating system:
Operating system processes:
Notes
systemctl edit creates a separate configuration file (/etc/systemd/system/mariadb.service.d/override.conf). systemd always prioritizes settings in override files over the main service file (/usr/lib/systemd/system/mariadb.service).
When upgrading MariaDB, the package manager only replaces or updates the main service file. Your custom override file in /etc/systemd/system/mariadb.service.d/ remains untouched, thus preserving your jemalloc configuration.
systemd reads all its service configurations, including override files, on system start. This means the LD_PRELOAD environment variable is set for MariaDB automatically each time the service starts, making the change persistent across reboots.
Finding memory leaks with jemalloc
jemalloc provides a report of memory leaks at program exit:
This produces output like this:
You can learn more about the memory leaks with jeprof, which is shipped with jemalloc:
You can also generate a PDF call graph of the leak:
You must accept the terms in the license agreement. Proceed to the next dialog.
Custom Setup
Custom Setup
Choose what features to install. By default, all features are installed with the exception of the debug symbols. If the "Database instance" feature is selected, the installer will create a database instance, by default running as a service. In this case the installer will present additional dialogs to control various database properties. Note that you do not necessarily have to create an instance at this stage. For example, if you already have MySQL or MariaDB databases running as services, you can just
upgrade them during the installation. Also, you can create additional database instances after the installation, with the mysql_install_db.exe utility.
By default, if you install a database instance, the data directory are in the data folder under the installation root. To change the data directory location, select Database instance in the feature tree, and use the Browse button to select another location.
Database Authentication/Security Related Properties
Database security properties
This dialog is shown if you selected the Database instance feature. Here, you can set the password for the "root" database user and specify whether root can access databases from remote machines. The Create anonymous account setting allows for anonymous (non-authenticated) users. It is off by default; it is not recommended to change this setting.
Other Database Properties
Other database properties
Install as service.
Defines whether the database should be run as a service. If it should be run as a service, then it also defines the service name. It is recommended to run your database instance as a service as it greatly
simplifies database management. In and later, the default service name used by the MSI installer is "MariaDB". In 10.3 and before, the default service name used by the MSI installer is "MySQL". Note that the default service name for the --install and --install-manual options for mysqld.exe is "MySQL" in all versions of MariaDB.
Enable Networking.
Whether to enable TCP/IP (recommended) and which port MariaDB should listen to. If security is a concern, you can change the parameter post-installation to bind to only local addresses. If the "Enable networking" checkbox is deselected, the database will use named pipes for
communication.
InnoDB engine settings.
Defines the size, and the InnoDB . The default buffer pool size is 12.5% of RAM, and depending on your requirements you can give InnoDB more (up to 70-80% RAM). 32 bit versions of MariaDB have restrictions on maximum buffer pool size, which is approximately 1GB, due to virtual address space limitations for 32bit processes. A 16k page size is suitable for most situations. See the system variable for details on other settings.
Ready to Install
Ready Dialog
At this point, all installation settings are collected. Click on the "Install" button.
End
Finish
Installation is finished now. If you have upgradable instances of MariaDB/MySQL, running as services, this dialog will present a "Do you want to upgrade existing instances" checkbox (if selected, it launches the Upgrade Wizard post-installation).
If you installed a database instance as service, the service will be running already.
New Entries in Start Menu
Installation will add some entries in the Start Menu:
Start Menu
MariaDB Client - Starts command line client mysql.exe.
Command Prompt - Starts a command prompt. Environment is set such that "bin"
directory of the installation is included into PATH environment variable, for instance,
use this command prompt to issue MariaDB commands (for example, mysqldadmin or mysql).
Database directory - Opens the data directory in Explorer.
Error log - Opens the database error log in Notepad.
my.ini - Opens the database configuration file my.ini in Notepad.
Upgrade Wizard - Starts the Wizard to upgrade an existing MariaDB/MySQL
database instance to this MariaDB version.
Uninstall UI
In the Explorer applet Programs and Features, find the entry for MariaDB, choose Uninstall/Change and click on the Remove button in the dialog:
UninstallChangeDialog_New
If you installed a database instance, you will need to decide if you want to remove or keep the data in the database directory.
KeepOrRemoveDataDialog_New
Silent Installation
The MSI installer supports silent installations as well. In its simplest form silent installation with all defaults can be performed from an elevated command prompt like this:
The installation is silent due to msiexe.exe's /qn switch (no user interface). If you remove the switch, the installation has the full UI.
Properties
Silent installations also support installation properties (a property would correspond for example to checked/unchecked state of a checkbox in the UI, user password, etc). With properties the command line to install the MSI package would look like this:
The MSI installer package requires property names to be all capitals and contain only English letters. By convention, for a boolean property, an empty value means "false" and a non-empty is "true".
MariaDB installation supports the following properties:
Property name
Default value
Description
INSTALLDIR
%ProgramFiles%\MariaDB \
Installation root
PORT
3306
--port parameter for the server
Features
Feature is a Windows installer term for a unit of installation. Features can be selected and deselected in the UI in the feature tree in the "Custom Setup" dialog.
Silent installation supports adding features with the special ropertyADDLOCAL=Feature_1,..,Feature_N and removing features with REMOVE=Feature_1,..., Feature_N .
Features in the MariaDB installer:
Feature id
Installed by default?
Description
DBInstance
yes
Install database instance
Client
yes
Command line client programs
Silent Installation Examples
All examples here require running as administrator with elevated command line privileges.
Install default features, database instance as service, non-default datadir
and port:
Install service, add debug symbols, do not add development components (client libraries and headers).
Silent Uninstall
To uninstall silently, use the REMOVE=ALL property with msiexec:
To keep the data directory during an uninstall, you will need to pass an additional parameter:
Installation Logs
If you encounter a bug in the installer, use the installer logs for diagnosis. Please attach verbose logs to the bug reports you create. To create a verbose installer log, start the installer from the command line with the /l*v switch, like so:
Running 32 and 64 Bit Distributions on the Same Machine
It is possible to install 32 and 64 bit packages on the same Windows x64.
Apart from testing, an example where this feature can be useful is a development scenario, where users want to run a 64 bit server and develop both 32 and 64 bit client components. In this case the full 64 bit package can be installed, including a database instance plus development-related features (headers and libraries) from the 32 bit package.
This page is licensed: CC BY-SA / Gnu FDL
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using MariaDB Backup. For more information about backing up and restoring the database, please see the Recovery Guide.
Take a full backup.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
Stop the MariaDB Server Process
Before the new version can be installed, we first need to stop the current MariaDB Server process.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 11.4.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Install via ZYpp (SLES)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Start
sudo systemctl start mariadb
Stop
sudo systemctl stop mariadb
Restart
sudo systemctl restart mariadb
Enable during startup
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called mariadb (ES10.4 and later) or mysql (ES10.3, ES10.2):
You can also verify the server version by checking the value of the version system variable with the SHOW GLOBAL STATUS statement:
You can also verify the server version by calling the function:
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using MariaDB Backup. For more information about backing up and restoring the database, please see the Recovery Guide.
Take a full backup.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
Stop the MariaDB Server Process
Before the new version can be installed, we first need to stop the current MariaDB Server process.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.6.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Install via ZYpp (SLES)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Start
sudo systemctl start mariadb
Stop
sudo systemctl stop mariadb
Restart
sudo systemctl restart mariadb
Enable during startup
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called mariadb (ES10.4 and later) or mysql (ES10.3, ES10.2):
You can also verify the server version by checking the value of the version system variable with the SHOW GLOBAL STATUS statement:
You can also verify the server version by calling the function:
Instructions for upgrading to MariaDB Enterprise Server 11.4, which introduces new data types like UUID and INET4, advanced JSON functions, and non-blocking online schema changes.
Overview
These instructions detail the upgrade from a previous version of MariaDB Enterprise Server to MariaDB Enterprise Server 11.4 on a range of supported Operating Systems.
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
See .
Incompatible Changes
MariaDB Enterprise Server 11.4 includes changes from previous release series (10.11, 11.0, 11.1, etc.). If you are upgrading from MariaDB Enterprise Server 10.6 or older, you are skipping several major versions. Review the following breaking changes to ensure application stability.
Removed Variables (Action Required)
The following variables have been removed. You must remove them from your configuration files (my.cnf, .ini) before starting the upgrade, or the server will fail to start:
innodb_defragment: (and all associated variables like innodb_defragment_fill_factor, innodb_defragment_n_pages).
des_encrypt / des_decrypt: These functions have been removed.
Behavior Changes & Deprecations
Binary Names: Scripts using mysql, mysqldump, or mysqladmin may fail or emit deprecation warnings. Update automation to use mariadb, mariadb-dump, and mariadb-admin.
Compression Plugins
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup before upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
1. Take a full backup. On MariaDB Enterprise Server 11.4 and later:
Confirm successful completion of the backup operation.
2. The backup must be prepared. On the MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the prepare operation.
3. Backups should be tested before they are trusted.
Audit Plugin Considerations
If you have the installed and are upgrading from MariaDB Enterprise Server 10.2 or 10.3, the audit plugin should be removed prior to the upgrade to prevent conflicts with the MariaDB Enterprise Audit Plugin, which that is present in MariaDB Enterprise Server 10.4 or later. It can be removed by using the statement:
And if you load the plugin in a configuration file using the plugin\_load\_add option, then the option should also be removed. The will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to a new major release of MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Enterprise Server before installing the new version of MariaDB Enterprise Server. Otherwise, the package manager will refuse to install the new version of MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
1. Set the system variable to 1:
2. Use to confirm that there are no external in a prepared state:
Commit or roll back any open before stopping the node for upgrade.
3. Stop the server process: For distributions that use systemd (most supported OSes), you can manage the server process using the systemctl command:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository. Installable versions of MariaDB Enterprise Server are 11.8 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins. Configure MariaDB. Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via ZYpp (SLES)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Configuration
For platforms that use YUM or ZYpp as a package manager: MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back.
For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system's default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
1. Connect to the server using MariaDB Client using the root@localhost user account. MariaDB Client is called mariadb (ES 10.4 and later):
2. You can also verify the server version by checking the value of the system variable with the statement:
3. You can also verify the server version by calling the function:
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
Overview
These instructions detail the upgrade from a previous version of MariaDB Enterprise Server to MariaDB Enterprise Server 10.5 on a range of supported Operating Systems.
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
Mandatory Clean Shutdown: Upgrading to MariaDB Enterprise Server 10.5 after a server crash is not supported if the redo log was created with MariaDB Enterprise Server 10.4 or earlier. The server must be shut down cleanly before starting the upgrade process.
Redo Log Preparation: If your 10.4 configuration uses innodb-log-files-in-group = 2 (or any value greater than 1), you must change this value to 1 in your configuration file, restart the 10.4 server once, and then perform a final clean shutdown before swapping the binaries to version 10.5. Failure to do so may result in InnoDB initialization errors during the upgrade.
Incompatible Changes
Binary Name Changes (Critical for Scripts)
mysqld is now mariadbd: The server binary has been renamed.
Systemd services and mysqld_safe handle this automatically.
Privileges
SHOW SLAVE STATUS: This command now requires the REPLICATION SLAVE ADMIN or SUPER privilege. It previously required only REPLICATION CLIENT. Ensure your monitoring users have the correct grants.
Removed Variables
innodb_checksums: Replaced by innodb_checksum_algorithm.
innodb_undo_logs: Deprecated/Replaced.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup before upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup. On MariaDB Enterprise Server 10.5 and later:
Confirm successful completion of the backup operation.
The backup must be prepared. On the MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
Audit Plugin Considerations
If you have the installed and are upgrading from MariaDB Enterprise Server 10.2 or 10.3, the audit plugin should be removed prior to the upgrade to prevent conflicts with the MariaDB Enterprise Audit Plugin, which that is present in MariaDB Enterprise Server 10.4 or later. It can be removed by using the statement:
And if you load the plugin in a configuration file using the plugin\_load\_add option, then the option should also be removed. The will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to a new major release of MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Enterprise Server before installing the new version of MariaDB Enterprise Server. Otherwise, the package manager will refuse to install the new version of MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external in a prepared state:
Commit or roll back any open before stopping the node for upgrade.
Stop the server process: For distributions that use systemd (most supported OSes), you can manage the server process using the systemctl command:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository. Installable versions of MariaDB Enterprise Server are 11.8 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins. Configure MariaDB. Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via ZYpp (SLES)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Configuration
For platforms that use YUM or ZYpp as a package manager: MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back.
For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system's default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account. MariaDB Client is called mariadb (ES 10.4 and later):
You can also verify the server version by checking the value of the system variable with the statement:
You can also verify the server version by calling the function:
Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.5
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
These instructions detail the upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.5 on a range of supported Operating Systems.
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup.
On MariaDB Community Server 10.4 and later:
On MariaDB Community Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Community Server 10.4 and later:
Audit Plugin Considerations
If you have the installed and if you are upgrading to MariaDB Enterprise Server 10.4 or later, then the audit plugin should be removed prior to the upgrade to prevent conflict with the MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later.
It can be removed by using the statement:
And if you load the plugin in a configuration file using the plugin_load_add option, then the option should also be removed.
The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Community Server, before installing MariaDB Enterprise Server. Otherwise, the package manager will refuse to install MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external XA transactions in a prepared state:
Commit or rollback any open XA transactions before stopping the node for upgrade.
Stop the server process:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Community Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mysql-clients.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql\_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called (ES10.4 and later) or mysql (ES10.3 and earlier):
You can also verify the server version by checking the value of the system variable with the statement:
Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.4
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
These instructions detail the upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.4 on a range of supported Operating Systems.
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup.
On MariaDB Community Server 10.4 and later:
On MariaDB Community Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Community Server 10.4 and later:
Audit Plugin Considerations
If you have the installed and if you are upgrading to MariaDB Enterprise Server 10.4 or later, then the audit plugin should be removed prior to the upgrade to prevent conflict with the MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later.
It can be removed by using the statement:
And if you load the plugin in a configuration file using the plugin_load_add option, then the option should also be removed.
The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Community Server, before installing MariaDB Enterprise Server. Otherwise, the package manager will refuse to install MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external in a prepared state:
Commit or rollback any open XA transactions before stopping the node for upgrade.
Stop the server process:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Community Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mysql-clients.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql\_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called (ES10.4 and later) or mysql (ES10.3 and earlier):
You can also verify the server version by checking the value of the system variable with the statement:
Upgrade MariaDB Enterprise Server from 10.4.X to 10.4.Y
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
These instructions detail a minor release upgrade with MariaDB Enterprise Server 10.4 on a range of supported Operating Systems.
A minor release upgrade is a change from an earlier release of MariaDB Enterprise Server 10.4 to a later release in the same release series.
For example, it would be a minor release upgrade to upgrade from MariaDB Enterprise Server 10.4.33-23 to MariaDB Enterprise Server 10.4.34-24.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup.
On MariaDB Enterprise Server 10.4 and later:
On MariaDB Enterprise Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Enterprise Server 10.4 and later:
Stop the MariaDB Server Process
Before the new version can be installed, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external in a prepared state:
Commit or rollback any open XA transactions before stopping the node for upgrade.
Stop the server process:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called in MariaDB Enterprise Server 10.4 and later:
And the utility is called in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called (ES10.4 and later) or mysql (ES10.3, ES10.2):
You can also verify the server version by checking the value of the system variable with the statement:
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
Overview
These instructions detail the upgrade from a previous version of MariaDB Enterprise Server to MariaDB Enterprise Server 10.4 on a range of .
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
See .
Upgrade to MariaDB Enterprise Server 10.6
Upgrade documentation for MariaDB Enterprise Server 10.6, featuring Atomic DDL support, JSON_TABLE function, improved Oracle compatibility modes, and the removal of older storage engines.
Overview
These instructions detail the upgrade from a previous version of MariaDB Enterprise Server to MariaDB Enterprise Server 10.6 on a range of .
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
See .
Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.3
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
These instructions detail the upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.3 on a range of .
When is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.39-20-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-------------------------------+
| Variable_name | Value |
+---------------+-------------------------------+
| version | 10.3.39-20-MariaDB-Enterprise |
+---------------+-------------------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 11.8.2-0-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| version | 11.8.3-1-MariaDB-Enterprise |
+---------------+-----------------------------+
# On Debian/Ubuntu
find /usr/lib -name "libjemalloc.so.*"
# On RHEL/CentOS
find /usr/lib64 -name "libjemalloc.so.*"
SHOW GLOBAL VARIABLES LIKE 'version_malloc_library';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| version_malloc_library | system |
+------------------------+--------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.28-22-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-------------------------------+
| Variable_name | Value |
+---------------+-------------------------------+
| version | 10.5.28-22-MariaDB-Enterprise |
+---------------+-------------------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.6.21-17-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-------------------------------+
| Variable_name | Value |
+---------------+-------------------------------+
| version | 10.6.21-17-MariaDB-Enterprise |
+---------------+-------------------------------+
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
,
10.5
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.5.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
,
10.5
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 11.4.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Replace /usr/lib64/libjemalloc.so.2 with the actual path you noted in step 1. Save the file and exit the editor.
Windows
Poor/Partial
Rarely used; usually requires custom builds.
ARM (RPi/M1/M2)
Conditional
Depends on the kernel page size (4KB vs 16KB).
Solaris/Illumos
Experimental
Possible but lacks the robust testing seen on Linux.
innodb_version: This variable is removed as it was redundant.
: If you used non-zlib compression (like
lz4
or
lzo
) in 10.6, ensure you have the necessary provider plugins installed in 11.4. Tables may be unreadable until the correct
mariadb-plugin-provider-*
package is installed.
Spider Engine: Default values for Spider buffers (e.g., spider_buffer_size) have changed significantly (often autosized). If you rely on specific Spider tuning from 10.6, verify your settings.
Replication (GTID): ES 11.4 defaults to stricter GTID consistency. If upgrading a cluster, ensure Replicas are compatible before upgrading the Primary.
InnoDB Redo Log: The innodb_log_file_size variable is now dynamic and largely ignored. The physical format of the redo log changed in 10.9; ensure you have a valid logical backup (mariadb-dump) before upgrading.
Optimizer (Cost Model): The Query Optimizer was rewritten in version 11.0. Execution plans may change. It is recommended to run ANALYZE TABLE on major tables after the upgrade.
CONNECT Storage Engine: Starting with version 10.5, the CONNECT storage engine is no longer included in the primary MariaDB Enterprise repository. To maintain access to this engine, you must add the --include-unsupported flag to the mariadb_es_repo_setup script when configuring your new repositories.
Impact: Monitoring scripts or custom startup scripts that explicitly look for a process named mysqldwill fail. Update them to look for mariadbd.
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera-3:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.5.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.5.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.5.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
/etc/my.cnf.d/server.cnf
Disable during startup
sudo systemctl disable mariadb
Status
sudo systemctl status mariadb
You can also verify the server version by calling the VERSION() function:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera-3:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.4.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.4.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.4.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
/etc/my.cnf.d/server.cnf
Disable during startup
sudo systemctl disable mariadb
Status
sudo systemctl status mariadb
You can also verify the server version by calling the VERSION() function:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.4.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
For users who have the Spider storage engine loaded who are upgrading from or earlier, Spider's new RPM package and dependencies must be manually installed after upgrading to or later.
In and earlier, Spider's components were installed with the server's RPM package.
Starting with , Spider adds unixODBC as a dependency, so Spider has been moved to a separate RPM package to avoid adding new dependencies to the server's RPM package.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.4.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.4.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Update MariaDB Enterprise Server and package dependencies:
For users who have the loaded who are upgrading from or earlier, Spider's new RPM package and dependencies must be manually installed after upgrading to or later.
In and earlier, Spider's components were installed with the server's RPM package.
Starting with , Spider adds unixODBC as a dependency, so Spider has been moved to a separate RPM package to avoid adding new dependencies to the server's RPM package.
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
Disable during startup
sudo systemctl disable mariadb
Status
sudo systemctl status mariadb
You can also verify the server version by calling the VERSION() function:
mysql.user Table: This table is now a View into mysql.global_priv.
Impact: Legacy scripts that attempt to manipulate users via INSERT INTO mysql.user ...will fail. You must use standard SQL commands (CREATE USER, GRANT, DROP USER).
Unix Socket Auth: The unix_socket authentication plugin is now enabled by default on Linux. root access via sudo mariadb works without a password, which may affect scripts expecting password authentication for localhost root.
Security
TLSv1.0: Disabled by default. Ensure your clients support newer TLS versions (TLS 1.1+).
Galera Cluster
wsrep_load_data_splitting: Default changed to OFF.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup before upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using MariaDB Backup. For more information about backing up and restoring the database, please see the Recovery Guide.
Take a full backup. On MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the backup operation.
The backup must be prepared. On the MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
Audit Plugin Considerations
If you have the MariaDB Audit Plugin installed and are upgrading from MariaDB Enterprise Server 10.2 or 10.3, the audit plugin should be removed prior to the upgrade to prevent conflicts with the MariaDB Enterprise Audit Plugin, which MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later. It can be removed by using the UNINSTALL SONAME statement:
And if you load the plugin in a configuration file using the plugin\_load\_add option, then the option should also be removed. The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to a new major release of MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Enterprise Server before installing the new version of MariaDB Enterprise Server. Otherwise, the package manager will refuse to install the new version of MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Commit or roll back any open XA transactions before stopping the node for upgrade.
Stop the server process: For distributions that use systemd (most supported OSes), you can manage the server process using the systemctl command:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository. Installable versions of MariaDB Enterprise Server are 11.8 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins. Configure MariaDB. Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via ZYpp (SLES)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Configuration
For platforms that use YUM or ZYpp as a package manager: MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back.
For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system's default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Start
sudo systemctl start mariadb
Stop
sudo systemctl stop mariadb
Restart
sudo systemctl restart mariadb
Enable during startup
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account. MariaDB Client is called mariadb (ES 10.4 and later):
You can also verify the server version by checking the value of the version system variable with the SHOW GLOBAL STATUS statement:
You can also verify the server version by calling the VERSION() function:
OFFSET: This is now a reserved word. If you have tables or columns named OFFSET, you must quote them (e.g., `OFFSET`) in your SQL queries.
Character Sets
utf8 changes: The utf8 character set is now an alias for utf8mb3 (3-byte) by default. If you need 4-byte support (for emojis), ensure your application explicitly uses utf8mb4.
Removed Variables
The following variables have been removed. Remove them from my.cnf before upgrading:
innodb_checksum_algorithm: The innodb and none options are removed. Use crc32 or full_crc32.
innodb_log_checksums: Removed.
innodb_undo_logs: Removed.
Storage Engines
TokuDB: The TokuDB storage engine was disabled in 10.5 and removed in 10.6. Migrating TokuDB tables to InnoDB or MyRocks is required before upgrading.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup before upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using MariaDB Backup. For more information about backing up and restoring the database, please see the Recovery Guide.
1. Take a full backup. On MariaDB Enterprise Server 10.6 and later:
Confirm successful completion of the backup operation.
2. The backup must be prepared. On the MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the prepare operation.
3. Backups should be tested before they are trusted.
Audit Plugin Considerations
If you have the MariaDB Audit Plugin installed and are upgrading from MariaDB Enterprise Server 10.2 or 10.3, the audit plugin should be removed prior to the upgrade to prevent conflicts with the MariaDB Enterprise Audit Plugin, which MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later. It can be removed by using the UNINSTALL SONAME statement:
And if you load the plugin in a configuration file using the plugin\_load\_add option, then the option should also be removed. The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to a new major release of MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Enterprise Server before installing the new version of MariaDB Enterprise Server. Otherwise, the package manager will refuse to install the new version of MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Commit or roll back any open XA transactions before stopping the node for upgrade.
3. Stop the server process: For distributions that use systemd (most supported OSes), you can manage the server process using the systemctl command:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
1. Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
2. Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
3. Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository. Installable versions of MariaDB Enterprise Server are 11.8 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins. Configure MariaDB. Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via ZYpp (SLES)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Configuration
For platforms that use YUM or ZYpp as a package manager: MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back.
For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system's default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Start
sudo systemctl start mariadb
Stop
sudo systemctl stop mariadb
Restart
sudo systemctl restart mariadb
Enable during startup
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
1. Connect to the server using MariaDB Client using the root@localhost user account. MariaDB Client is called mariadb (ES 10.4 and later):
2. You can also verify the server version by checking the value of the version system variable with the SHOW GLOBAL STATUS statement:
3. You can also verify the server version by calling the VERSION() function:
The instructions below show how to perform a backup using MariaDB Backup. For more information about backing up and restoring the database, please see the Recovery Guide.
Take a full backup.
On MariaDB Community Server 10.4 and later:
On MariaDB Community Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Community Server 10.4 and later:
On MariaDB Community Server 10.3 and earlier:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
Audit Plugin Considerations
If you have the MariaDB Audit Plugin installed and if you are upgrading to MariaDB Enterprise Server 10.4 or later, then the audit plugin should be removed prior to the upgrade to prevent conflict with the MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later.
And if you load the plugin in a configuration file using the plugin_load_add option, then the option should also be removed.
The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Community Server, before installing MariaDB Enterprise Server. Otherwise, the package manager will refuse to install MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Commit or rollback any open XA transactions before stopping the node for upgrade.
Stop the server process:
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.3.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Install via ZYpp (SLES)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Community Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mysql-clients.cnf
/etc/my.cnf.d/server.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Start
sudo systemctl start mariadb
Stop
sudo systemctl stop mariadb
Restart
sudo systemctl restart mariadb
Enable during startup
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql\_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called mariadb (ES10.4 and later) or mysql (ES10.3 and earlier):
You can also verify the server version by checking the value of the version system variable with the SHOW GLOBAL STATUS statement:
You can also verify the server version by calling the function:
Provides an overview of the RPM packages available for MariaDB, listing the various RPMs such as server, client, backup, and shared libraries, and explaining their contents and dependencies.
Available RPM Packages
The available RPM packages depend on the specific MariaDB release series.
List of RPM Packages in MariaDB
The following RPMs are in MariaDB Enterprise Server 11.8:
Package Name
Description
Removed RPM Packages
Occasionally, RPM packages are removed from MariaDB. This could be because they are no longer needed, or because they were for features or storage engines that have been removed from MariaDB.
Some examples of removed RPMs are:
Package Name
Description
Installing RPM Packages
Preferably, you should install MariaDB RPM packages using the package manager
of your Linux distribution, for example yum orzypper. But you can also use the lower-level rpm tool.
Actions Performed by RPM Packages
Users and Groups Created
When the aria-server RPM package is installed, it will create a user and group named mysql, if it does not already exist.
See Also
Upgrade from MariaDB Community Server to MariaDB Enterprise Server 11.4
Instructions for upgrading to MariaDB Enterprise Server 11.4, which introduces new data types like UUID and INET4, advanced JSON functions, and non-blocking online schema changes.
These instructions detail the upgrade from MariaDB Community Server to MariaDB Enterprise Server 11.4 on a range of supported Operating Systems.
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup.
On MariaDB Community Server 10.4 and later:
On MariaDB Community Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Community Server 10.4 and later:
Audit Plugin Considerations
If you have the installed and if you are upgrading to MariaDB Enterprise Server 10.4 or later, then the audit plugin should be removed prior to the upgrade to prevent conflict with the MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later.
It can be removed by using the statement:
And if you load the plugin in a configuration file using the plugin_load_add option, then the option should also be removed.
The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Convert InnoDB Row Format
MariaDB Enterprise Server 11.4 changes the COMPRESSED row format to read-only. Before upgrading, modify any compressed InnoDB tables to use the DYNAMIC row format.
Use the information\_schema.INNODB\_SYS\_TABLES to identify any InnoDB tables that use the COMPRESSED row format:
Execute an statement for each table, changing its row format from COMPRESSED to DYNAMIC:
Uninstall the Old Version
When upgrading to MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Community Server, before installing MariaDB Enterprise Server. Otherwise, the package manager will refuse to install MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external XA transactions in a prepared state:
Commit or rollback any open XA transactions before stopping the node for upgrade.
Stop the server process:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Community Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mysql-clients.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql\_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called (ES10.4 and later) or mysql (ES10.3 and earlier):
You can also verify the server version by checking the value of the system variable with the statement:
Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6
Upgrade documentation for MariaDB Enterprise Server 10.6, featuring Atomic DDL support, JSON_TABLE function, improved Oracle compatibility modes, and the removal of older storage engines.
These instructions detail the upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6 on a range of supported Operating Systems.
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup.
On MariaDB Community Server 10.4 and later:
On MariaDB Community Server 10.3 and earlier:
Confirm successful completion of the backup operation.
The backup must be prepared.
On MariaDB Community Server 10.4 and later:
Audit Plugin Considerations
If you have the installed and if you are upgrading to MariaDB Enterprise Server 10.4 or later, then the audit plugin should be removed prior to the upgrade to prevent conflict with the MariaDB Enterprise Audit Plugin that is present in MariaDB Enterprise Server 10.4 or later.
It can be removed by using the statement:
And if you load the plugin in a configuration file using the plugin_load_add option, then the option should also be removed.
The MariaDB Enterprise Audit Plugin will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Convert InnoDB Row Format
MariaDB Enterprise Server 10.6 changes the COMPRESSED row format to read-only. Before upgrading, modify any compressed InnoDB tables to use the DYNAMIC row format.
Use the information\_schema.INNODB\_SYS\_TABLES to identify any InnoDB tables that use the COMPRESSED row format:
Execute an statement for each table, changing its row format from COMPRESSED to DYNAMIC:
Uninstall the Old Version
When upgrading to MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Community Server, before installing MariaDB Enterprise Server. Otherwise, the package manager will refuse to install MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external XA transactions in a prepared state:
Commit or rollback any open XA transactions before stopping the node for upgrade.
Stop the server process:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5
Configuration
For platforms that use YUM or ZYpp as a package manager:
MariaDB Community Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mysql-clients.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back. For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called in MariaDB Enterprise Server 10.4 and later:
And the utility is called mysql\_upgrade in MariaDB Enterprise Server 10.3 and 10.2:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account.
MariaDB Client is called (ES10.4 and later) or mysql (ES10.3 and earlier):
You can also verify the server version by checking the value of the system variable with the statement:
An upgrade guide for an older, end-of-life version of MariaDB Enterprise Server, kept for reference purposes for legacy systems.
Overview
These instructions detail the upgrade from a previous version of MariaDB Enterprise Server to MariaDB Enterprise Server 10.3 on a range of supported Operating Systems.
When MariaDB Enterprise Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.
See .
Incompatible Changes
Reserved Words
EXCEPT and INTERSECT: These are now reserved words. If used as identifiers (table/column names), they must be quoted.
SQL Compatibility
VALUES() Function: Renamed to VALUE().
mysqldump Compatibility: A mysqldump binary from an older version cannot dump data from a MariaDB 10.3 server due to changes in the transaction registry tables. You must upgrade your client tools along with the server.
Removed Options
innodb_file_format: The Antelope file format is no longer supported. The default is Barracuda.
Data Backup
Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup before upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.
The instructions below show how to perform a backup using . For more information about backing up and restoring the database, please see the .
Take a full backup. On MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the backup operation.
The backup must be prepared. On the MariaDB Enterprise Server 10.4 and later:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
Audit Plugin Considerations
If you have the installed and if you are upgrading to MariaDB Enterprise Server 10.4 or later, then the audit plugin should be removed prior to the upgrade to prevent conflict with the that is present in MariaDB Enterprise Server 10.4 or later. It can be removed by using the statement:
And if you load the plugin in a configuration file using the plugin\_load\_add option, then the option should also be removed. The will automatically be installed after installing MariaDB Enterprise Server 10.4 or later.
Uninstall the Old Version
When upgrading to a new major release of MariaDB Enterprise Server, it is necessary to remove the existing installation of MariaDB Enterprise Server before installing the new version of MariaDB Enterprise Server. Otherwise, the package manager will refuse to install the new version of MariaDB Enterprise Server.
Stop the MariaDB Server Process
Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.
Set the system variable to 1:
Use to confirm that there are no external in a prepared state:
Commit or roll back any open before stopping the node for upgrade.
Stop the server process: For distributions that use systemd (most supported OSes), you can manage the server process using the systemctl command:
Uninstall via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications:
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Enterprise Server packages. Note that a wildcard character is used to ensure that all MariaDB Enterprise Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well. The name of the package depends on the specific version of MariaDB Enterprise Server. When upgrading from MariaDB Enterprise Server 10.4 or later, the package is called galera-enterprise-4:
Before proceeding, verify that all MariaDB Enterprise Server packages are uninstalled. The following command should not return any results:
Install the New Version
MariaDB Corporation provides package repositories for YUM (RHEL, AlmaLinux, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Install via YUM (RHEL, AlmaLinux, CentOS, Rocky Linux)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the YUM package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via APT (Debian, Ubuntu)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the APT package repository. Installable versions of MariaDB Enterprise Server are 11.8 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins. Configure MariaDB. Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Install via ZYpp (SLES)
Retrieve your Customer Download Token atand substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure the ZYpp package repository. Installable versions of MariaDB Enterprise Server are 11.8, 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to mariadb_es_repo_setup. The following directions reference 11.8.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB. Installation only loads MariaDB Enterprise Server onto the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Configuration
For platforms that use YUM or ZYpp as a package manager: MariaDB Enterprise Server's packages bundle several configuration files:
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mariadb-enterprise.cnf
If your version of any of these configuration files contained any custom edits, then the package manager may save your edited version with the .rpmsave extension during the upgrade process. If you want to continue using your version with the custom edits, then you may need to move it back.
For example, to move server.cnf back in place:
Starting the Server
MariaDB Enterprise Server includes configuration to start, stop, restart, enable/disable on boot, and check the status of the Server using the operating system's default process management system.
For distributions that use systemd, you can manage the Server process using the systemctl command:
Operation
Command
Upgrading the Data Directory
MariaDB Enterprise Server ships with a utility that can be used to identify and correct compatibility issues in the new version. After you upgrade your Server and start the server process, run this utility to upgrade the data directory.
The utility is called mariadb-upgrade in MariaDB Enterprise Server 10.4 and later:
Testing
When MariaDB Enterprise Server is up and running on your system, you should test that it is working and there weren't any issues during startup.
Connect to the server using MariaDB Client using the root@localhost user account. MariaDB Client is called mariadb (ES 10.4 and later):
You can also verify the server version by checking the value of the system variable with the statement:
You can also verify the server version by calling the function:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 11.4.5-3-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| version | 11.4.5-3-MariaDB-Enterprise |
+---------------+-----------------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.28-22-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| version | 10.5.28-22-MariaDB-Enterprise |
+---------------+-----------------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| version | 10.5.28-MariaDB |
+---------------+-----------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.4.34-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| version | 10.4.34-MariaDB |
+---------------+-----------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.4.34-24-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-------------------------------+
| Variable_name | Value |
+---------------+-------------------------------+
| version | 10.4.34-24-MariaDB-Enterprise |
+---------------+-------------------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.4.34-24-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| version | 10.4.34-24-MariaDB-Enterprise |
+---------------+-----------------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.6.21-17-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| version | 10.6.21-17-MariaDB-Enterprise |
+---------------+-----------------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.39-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| version | 10.3.39-MariaDB |
+---------------+-----------------+
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera-3:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
,
10.5
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.3.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
,
10.5
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.3.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Client tools like mariadb CLI, mariadb-dump, and others
MariaDB-client-compat
Symbolic links from old MySQL tool names to MariaDB, like mysqladmin → mariadb-admin or mysql → mariadb. Good to have if you are using MySQL tool names in your scripts
MariaDB-client-debuginfo
Debuginfo for client tools like mariadb CLI, mariadb-dump, and others
MariaDB-columnstore-cmapi
MariaDB ColumnStore cluster management API (CMAPI) and command line tool
MariaDB-columnstore-engine
The
MariaDB-columnstore-engine-debuginfo
Debuginfo for MariaDB-columnstore-engine
MariaDB-common
Character set files and /etc/my.cnf
MariaDB-common-debuginfo
Debuginfo for character set files and /etc/my.cnf
MariaDB-cracklib-password-check
The cracklib_password_check password validation plugin
MariaDB-cracklib-password-check-debuginfo
Debuginfo for the cracklib_password_check password validation plugin
MariaDB-devel
Development headers and static libraries
MariaDB-devel-debuginfo
Debuginfo for development headers and static libraries
MariaDB-gssapi-server
The gssapi authentication plugin
MariaDB-gssapi-server-debuginfo
Debuginfo for the gssapi authentication plugin
MariaDB-hashicorp-key-management
Encryption plugin that uses Hashicorp Vault for storing encryption keys for MariaDB Data-at-Rest encryption
MariaDB-hashicorp-key-management-debuginfo
Debuginfo for MariaDB-hashicorp-key-management
MariaDB-provider-bzip2
BZip2 compression support in the server and storage engines
MariaDB-provider-bzip2-debuginfo
Debuginfo for MariaDB-provider-bzip2
MariaDB-provider-lz4
LZ4 compression support in the server and storage engines
MariaDB-provider-lz4-debuginfo
Debuginfo for MariaDB-provider-lz4
MariaDB-provider-lzma
LZMA compression support in the server and storage engines
MariaDB-provider-lzma-debuginfo
Debuginfo for MariaDB-provider-lzma
MariaDB-provider-lzo
LZO compression support in the server and storage engines
MariaDB-provider-lzo-debuginfo
Debuginfo for MariaDB-provider-lzo
MariaDB-provider-snappy
Snappy compression support in the server and storage engines
MariaDB-provider-snappy-debuginfo
Debuginfo for MariaDB-provider-snappy
MariaDB-rocksdb-engine
The
MariaDB-rocksdb-engine-debuginfo
Debuginfo for the MyRocks storage engine
MariaDB-s3-engine
The , which allows one to archive MariaDB tables in Amazon S3 (or any third-party public or private cloud that implements S3 API), but still have them accessible in MariaDB in read-only mode
MariaDB-s3-engine-debuginfo
Debuginfo for the S3 storage engine
MariaDB-server
The server and server tools, like myisamchk and mariadb-hotcopy are here
MariaDB-server-compat
Symbolic links from old MySQL server executable names to MariaDB, like mysqld -> mariadbd or mysql_install_db -> mariadb-install-db. Good to have if you are using MySQL tool names in your scripts
MariaDB-server-debuginfo
Debuginfo for the server and server tools, like myisamchk and mariadb-hotcopy are here
MariaDB-shared
Dynamic client libraries
MariaDB-shared-debuginfo
Debuginfo for dynamic client libraries
MariaDB-spider-engine
The
MariaDB-spider-engine-debuginfo
Debuginfo for the Spider storage engine
Additionally, the following RPMs are available in the MariaDB Enterprise Unsupported repository:
Package Name
Description
MariaDB-connect-engine
The CONNECT storage engine
MariaDB-connect-engine-debuginfo
Debuginfo for the CONNECT storage engine
MariaDB-connect-engine-jdbc
Connect storage engine JDBC interface used to interact with external DBMS via Java connector
MariaDB-test
The following RPMs are in MariaDB Community Server 12.1:
Old shared client libraries, removed in MariaDB 11.4 as they were no longer needed
MariaDB-tokudb-engine
The TokuDB storage engine. It was disabled in MariaDB 10.5 and removed in MariaDB 10.6
is a command-line utility for creating consistent and reliable backups of MariaDB databases, supporting full and incremental backup options
On MariaDB Community Server 10.3 and earlier:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera-3:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 11.4.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 11.4.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 11.4.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
/etc/my.cnf.d/server.cnf
Disable during startup
sudo systemctl disable mariadb
Status
sudo systemctl status mariadb
You can also verify the server version by calling the VERSION() function:
Confirm successful completion of the prepare operation.
Backups should be tested before they are trusted.
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via APT (Debian, Ubuntu)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera-3:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
Uninstall via ZYpp (SLES)
Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled:
Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.
Uninstall the Galera package as well.
The name of the package depends on the specific version of MariaDB Community Server.
When upgrading from MariaDB Community Server 10.4 or later, the package is called galera-4:
When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera:
Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:
,
10.4
, and
10.3
. Pass the version to install using the
--mariadb-server-version
flag to
. The following directions reference 10.6.
To configure YUM package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in theVersionssection at the bottom of theMariaDB Package Repository Setup and Usagepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.6.
To configure APT package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
Installable versions of MariaDB Enterprise Server are 11.4, 10.6, 10.5, 10.4, and 10.3. Pass the version to install using the --mariadb-server-version flag to . The following directions reference 10.6.
To configure ZYpp package repositories:
Checksums of the various releases of the mariadb_es_repo_setup script can be found in thesection at the bottom of thepage. Substitute ${checksum} in the example above with the latest checksum.
Install MariaDB Enterprise Server and package dependencies:
Installation of additional packages may be required for some plugins.
Configure MariaDB.
Installation only loads MariaDB Enterprise Server to the system. MariaDB Enterprise Server requires configuration before the database server is ready for use.
/etc/my.cnf.d/server.cnf
Disable during startup
sudo systemctl disable mariadb
Status
sudo systemctl status mariadb
You can also verify the server version by calling the VERSION() function:
Compile and Using MariaDB with Sanitizers (ASAN, UBSAN, TSAN, MSAN)
Guide on compiling MariaDB with various sanitizers like ASAN and UBSAN for debugging and error detection.
What are Sanitizers?
Sanitizers are open source runtime error detectors developed by Google that are enabled during the compile step. These sanitizers add extra code during compilation that will throw exceptions when certain errors are detected.
Sanitizers find server bugs bug instrumenting the runtime MariaDB during compile time, and performing runtime checks on the executed test. Sanitizers detect a variety of implementation defects:
The sanitizers for clang are:
How to Compile MariaDB with Sanitizers
Before using ASAN locally, please ensure that it is installed on the system:
You can use one of the two following build commands:
Additionally, UBSAN, TSAN, and MSAN can be enabled in a similar way:
UBSAN:
TSAN:
MSAN:
Important to note MSAN requires instrumented c++ and system libraries to have a functioning build per container guide below.
Buildbot's MSAN container
The time consuming aspect of building with MSAN is having . To help with this MariaDB Foundation has built the MSAN container for buildbot, but this is reusable locally.
The MariaDB Buildbot MSAN container, quay.io/mariadb-foundation/bb-worker:debian12-msan-clang-20 is a container with:
the instrumented libraries required for MSAN
a very modern clang version
a stable Debian as a base image
The build of this container isn't hard coded to MSAN so it can be used for:
A general Debian build container
Using the gcc/g++ of Debian (by removing the CC and CXX environment variables
Compiling with a latest clang
Running the MSAN container
First, run the container where your current directory is the source directory.
For Podman:
The /build options for Docker Engine are slightly different as they default to noexec and a root ownership by default.
The purposes of these, and other options include:
Command Component
Purpose
Notes
Notes:
/dev/shm is mounted no-exec so it rr recording here cannot be replayed while in that location
optionally can make /build a filesystem mount to preserve the build.
There are environment variables that affect the cmake configure options and mtr are:
Note: Galera WSREP_PROVIDER isn't instrumented with any sanitizer
Check the latest version of these running env.
Running an MSAN Build
Once you have started the MSAN container this is how you perform a MSAN build.
The time consuming aspect of building with MSAN is having .
All the following instructions are executed within the container - there is a document in /etc/motd that contains the latest information. Start by running the configure stage of cmake:
MSAN is a clang only compile options and other compilers will not work.
CMake Options
Why
Run the build stage:
As the MSAN has rpath defined in its compile option there is no need for LD_LIBRARY_PATH manipulation.
To run tests:
As newer versions occur and improvements happen these instructions may change. Look at the execution on the to see if any changes have been made.
Bug Reporting
Use the MSAN in the label when reporting bugs.
Current outstanding MSAN bugs can be found on .
Running an combined ASAN and UBSAN Build
The clang implemented instrumentation of the MemorySanitizer (MSAN) conflicts with the AddressSanitizer (ASAN) and UndefinedBehaviour (UBSAN) mechanisms, however ASAN and UBSAN can be combined into the same build.
After starting the MSAN container the following will configure a combined ASAN and UBSAN build:
CMake Options
Why
Build and test run are standard.
Note: list of unfixed .
Bug Reporting
UBSAN bugs are labelled with UBSAN and also the short form of the undefined behaviour.
For example in the following output, the insufficient-object-size would be used as the additional short form of the label.
Likewise for ASAN, should use ASAN as the label with the short form of the ASAN type from the output.
Using RR
In the MSAN container, there is a build version of the latest rr at the time of the container build.
A recording of the execution can be make with the . Or alternately you can execute:
To replay a recording adjust per the test worker and instance used in the test:
Using curl in the container its possible to save up this directory for another user or developer to use with the same container. This can also be shared with our public ftp server for assistance diagnosing validating a bug report.
ASAN Options
To run mariadbd with instrumentation you have to set the ASAN_OPTIONS environment variable before starting mariadbd including starting mariadbd when running mtr.
The above command will abort any instrumented executable if any errors are found, which is good for debugging. If you set abort_on_error=0 all server errors are logged to your error log file (mysqld.err).
To catch errors for other processes than the server, you can set more options, like this:
If you are seeing an incomplete stack trace for a memory allocation, you may rerun the failing test with
To get core dumps of failures:
To see all the options (or to check if an executable is instrumented), you may try the following:
Using Valgrind
The can use for finding memory leaks and wrong memory accesses. Valgrind is an instrumentation framework for building dynamic analysis tools. If Valgrind is installed on your system, you can simply use to run the test under Valgrind.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 11.4.5-3-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+------------------+
| Variable_name | Value |
+---------------+------------------+
| version | 11.4.5-3-MariaDB |
+---------------+------------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.6.21-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| version | 10.6.21-MariaDB |
+---------------+-----------------+
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 11.4.5-3-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
SHOW GLOBAL VARIABLES LIKE 'version';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| version | 11.4.5-3-MariaDB-Enterprise |
+---------------+-----------------------------+
system libraries for these haven't been MSAN instrumented currently
Enables UBSAN build in compile options
mysql-client-test executable, and mysql-test framework with the tests
MariaDB-test-debuginfo
Debuginfo for MariaDB-test
Debug sources for package galera-4
MariaDB-backup
mariadb-backup is a command-line utility for creating consistent and reliable backups of MariaDB databases, supporting full and incremental backup options
MariaDB-backup-debuginfo
Debuginfo for mariadb-backup
MariaDB-client
Client tools like mariadb CLI, mariadb-dump, and others
MariaDB-client-compat
Symbolic links from old MySQL tool names to MariaDB, like mysqladmin -> mariadb-admin or mysql -> mariadb. Good to have if you are using MySQL tool names in your scripts
MariaDB-client-debuginfo
Debuginfo for client tools like mariadb CLI, mariadb-dump, and others
MariaDB-columnstore-engine
The
MariaDB-columnstore-engine-debuginfo
Debuginfo for MariaDB-columnstore-engine
MariaDB-common
Character set files and /etc/my.cnf
MariaDB-common-debuginfo
Debuginfo for character set files and /etc/my.cnf
MariaDB-connect-engine
The CONNECT storage engine
MariaDB-connect-engine-debuginfo
Debuginfo for the CONNECT storage engine
MariaDB-connect-engine-jdbc
Connect storage engine JDBC interface used to interact with external DBMS via Java connector
MariaDB-cracklib-password-check
The cracklib_password_check password validation plugin
MariaDB-cracklib-password-check-debuginfo
Debuginfo for the cracklib_password_check password validation plugin
MariaDB-devel
Development headers and static libraries
MariaDB-devel-debuginfo
Debuginfo for development headers and static libraries
MariaDB-gssapi-server
The gssapi authentication plugin
MariaDB-gssapi-server-debuginfo
Debuginfo for the gssapi authentication plugin
MariaDB-hashicorp-key-management
Encryption plugin that uses Hashicorp Vault for storing encryption keys for MariaDB Data-at-Rest encryption
MariaDB-hashicorp-key-management-debuginfo
Debuginfo for MariaDB-hashicorp-key-management
MariaDB-oqgraph-engine
The Open Query GRAPH computation engine, or OQGRAPH, storage engine
MariaDB-oqgraph-engine-debuginfo
Debuginfo for the OQGRAPH storage engine
MariaDB-provider-bzip2
BZip2 compression support in the server and storage engines
MariaDB-provider-bzip2-debuginfo
Debuginfo for MariaDB-provider-bzip2
MariaDB-provider-lz4
LZ4 compression support in the server and storage engines
MariaDB-provider-lz4-debuginfo
Debuginfo for MariaDB-provider-lz4
MariaDB-provider-lzma
LZMA compression support in the server and storage engines
MariaDB-provider-lzma-debuginfo
Debuginfo for MariaDB-provider-lzma
MariaDB-provider-lzo
LZO compression support in the server and storage engines
MariaDB-provider-lzo-debuginfo
Debuginfo for MariaDB-provider-lzo
MariaDB-provider-snappy
Snappy compression support in the server and storage engines
The S3 storage engine, which allows one to archive MariaDB tables in Amazon S3 (or any third-party public or private cloud that implements S3 API), but still have them accessible in MariaDB in read-only mode
MariaDB-s3-engine-debuginfo
Debuginfo for the S3 storage engine
MariaDB-server
The server and server tools, like myisamchk and mariadb-hotcopy are here
MariaDB-server-compat
Symbolic links from old MySQL server executable names to MariaDB, like mysqld -> mariadbd or mysql_install_db -> mariadb-install-db. Good to have if you are using MySQL tool names in your scripts
MariaDB-server-debuginfo
Debuginfo for the server and server tools, like myisamchk and mariadb-hotcopy are here
MariaDB-shared
Dynamic client libraries
MariaDB-shared-debuginfo
Debuginfo for dynamic client libraries
MariaDB-test
mysql-client-test executable, and mysql-test framework with the tests
A guide on migrating from MySQL 5.5 to MariaDB 10.1 during an operating system upgrade to Debian 9 (Stretch).
This page is obsolete. The information is old, outdated, or otherwise currently incorrect. We are keeping the page for historical reasons only. Do not rely on the information in this article.
MariaDB 10.1 is now the default mysql server in Debian 9 "Stretch". This page provides information on this change and instructions to help with upgrading your Debian 8 "Jessie" version of MySQL or MariaDB to MariaDB 10.1 in Debian 9 "Stretch".
Background information
The version of MySQL in Debian 8 "Jessie" is 5.5. When installing, most users will install the mysql-server package, which depends on the mysql-server-5.5 package. In Debian 9 "Stretch" the mysql-server package depends on a new package called default-mysql-server. This package in turn depends on mariadb-server-10.1. There is no default-mysql-server package in Jessie.
In both Jessie and Stretch there is also a mariadb-server package which is a MariaDB-specific analog to the mysql-server package. In Jessie this package depends on mariadb-server-10.0 and in Stretch this package depends on mariadb-server-10.1 (the same as the default-mysql-server package).
So, the main repository difference in Debian 9 "Stretch" is that when you install the mysql-server package on Stretch you will get instead of MySQL, like you would with previous versions of Debian. Note that mysql-server is just an empty transitional meta-package and users are encouraged to install MariaDB using the actual package mariadb-server.
All apps and tools, such as the popular LAMP stack, in the repositories that depend on the mysql-server package will continue to work using MariaDB as the database. For new installs there is nothing different that needs to be done when installing the mysql-server or mariadb-server packages.
Before you upgrade
If you are currently running MySQL 5.5 on Debian 8 "Jessie" and are planning an upgrade to on Debian 9 "Stretch", there are some things to keep in mind:
Backup before you begin
This is a major upgrade, and so complete database backups are strongly suggested before you begin. is compatible on disk and wire with MySQL 5.5, and the MariaDB developer team has done extensive development and testing to make upgrades as painless and trouble-free as possible. Even so, it's always a good idea to do regular backups, especially before an upgrade. As the database has to shut down anyway for the upgrade, this is a good opportunity to do a backup!
Changed, renamed, and removed options
Some default values have been changed, some have been renamed, and others have been removed between MySQL 5.5 and . The following sections detail them.
Options with 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 do use a bit more disk space. []
Option
Old default value
New default value
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
Suggested upgrade procedure for replication
If you have a , the normal procedure is to first upgrade your slaves to MariaDB, then move one of your slaves to be the master and then upgrade your original master. In this scenario you can upgrade from MySQL to MariaDB or upgrade later to a new version of MariaDB without any downtime.
Other resources to consult before beginning your upgrade
It may also be useful to check out the section. It contains several articles on upgrading from MySQL to MariaDB and from one version of MariaDB to another. For upgrade purposes, MySQL 5.5 and are very similar. In particular, see the and articles.
If you need help with upgrading or setting up replication, you can always to find experts to help you with this.
Upgrading to from MySQL 5.5
Pre-Upgrade Preparation
Set InnoDB for a Full Shutdown Set innodb_fast_shutdown to 0. This is to ensure that if you make a backup as part of the upgrade, all data is written to the InnoDB data files, which simplifies any restore in the future.
Shutdown MySQL Shutdown your MySQL 5.5 server.
OS and Database Upgrade
Perform the OS Upgrade Proceed with the upgrade from Debian 8 to Debian 9.
Automatic Database Upgrade Process During the Debian upgrade, the mysql_upgrade script will be run automatically. This script does two things:
Post-Upgrade Configuration
Update Configuration and Restart You can now add new options to your my.cnf file to enable new features.
After changing my.cnf, you must restart the mysqld service.
or
Upgrading to from an older version of MariaDB
If you have installed or on your Debian 8 "Jessie" machine from the MariaDB repositories you will need to upgrade to when upgrading to Debian 9 "Stretch". You can choose to continue using the MariaDB repositories or move to using the Debian repositories.
If you want to continue using the MariaDB repositories edit the MariaDB entry in your sources.list and change every instance of 5.5 or 10.0 to 10.1. Then upgrade as suggested .
If you want to move to using from the Debian repositories, delete or comment out the MariaDB entries in your sources.list file. Then upgrade as suggested .
If you are already using on your Debian 8 "Jessie" machine, you can choose to continue to use the MariaDB repositories or move to using the Debian repositories as with and 10.0. In either case, the upgrade will at most be just a minor upgrade from one version of to a newer version. In the case that you are already on the current version of MariaDB that exists in the Debian repositories or a newer one) MariaDB will not be upgraded during the system upgrade but will be upgraded when future versions of MariaDB are released.
You should always perform a compete backup of your data prior to performing any major system upgrade, even if MariaDB itself is not being upgraded!
MariaDB Galera Cluster
If you have been using MariaDB Galera Cluster 5.5 or 10.0 on Debian 8 "Jessie" it is worth mentioning that is included by default in , there is no longer a need to install a separate mariadb-galera-server package.
Configuration options for advanced database users
To get better performance from MariaDB used in production environments, here are some suggested additions to which in Debian is at /etc/mysql/mariadb.d/my.cnf:
The reason for the above change is that MariaDB is using the newer storage engine for disk based temporary files instead of MyISAM. The main benefit of Aria is that it can cache both indexes and rows and thus gives better performance than MyISAM for large queries.
Secure passwordless root accounts only on new installs
Unlike the old MySQL packages in Debian, onwards in Debian uses unix socket authentication on new installs to avoid root password management issues and thus be more secure and easier to use with provision systems of the cloud age.
This only affects new installs. Upgrades from old versions will continue to use whatever authentication and user accounts already existed. This is however good to know, because it can affect upgrades of dependant systems, typically e.g. require users to rewrite their Ansible scripts and similar tasks. The new feature is much easier than the old, so adjusting for it requires little work.
See also
Comments and suggestions
If you have comments or suggestions on things we can add or change to improve this page. Please add them as comments below.
Notes
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
This page is licensed: CC BY-SA / Gnu FDL
Installing MariaDB .deb Files
Complete .deb installation guide: add repo via mariadb_repo_setup, import GPG keys, apt install mariadb-server galera-4, and APT configuration.
Installing MariaDB with APT
On Debian, Ubuntu, and other similar Linux distributions, it is highly recommended to install the relevant .deb packages from MariaDB's
repository using , , , , or another package
manager.
This page walks you through the simple installation steps using apt.
500
5000
5M
48M
ON
OFF
0
1000
300
400
20
300
ON
20
128K
256K
1M
4M
10
100
0
1024M
8M
128M
...
Added extended_keys=on, exists_to_in=on
8192
16384
0
1M
ON
OFF
8192
24576
OFF
ON
No longer affects replication of events in a Galera cluster.
empty
NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
0
10000
0
10000
0
10000
400
2000
500
1000
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-flush-neighbor-pages
Renamed to
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-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
Unused in 10.0+
xtradb-admin-command
Removed by XtraDB
Take a Full Backup
When the server is shut down is the perfect time to take a backup of your databases.
Store a copy of the backup on external media or a different machine for safety.
Upgrades the permission tables in the mysql database with some new fields.
Does a very quick check of all tables and marks them as compatible with MariaDB 10.1.
In most cases, this should be a fast operation (depending of course on the number of tables).
General instructions for upgrading from MySQL to MariaDB
We currently have APT repositories for the following Linux distributions:
Debian 11 (Bullseye)
Debian 12 (Bookworm)
Debian 13 (Trixie)
Debian Unstable (Sid)
Ubuntu 22.04 (Jammy)
Ubuntu 24.04 (Noble)
Using the MariaDB Package Repository Setup Script
If you want to install MariaDB with apt, then you can configure apt to install from MariaDB Corporation's MariaDB Package Repository by using the MariaDB Package Repository setup script.
MariaDB Corporation provides a MariaDB Package Repository for several Linux distributions that use apt to manage packages. This repository contains software packages related to MariaDB Server, including the server itself, clients and utilities, client libraries, plugins, and mariadb-backup. The MariaDB Package Repository setup script automatically configures your system to install packages from the MariaDB Package Repository.
To use the script, execute the following command:
Note that this script also configures a repository for MariaDB MaxScale and a repository for MariaDB Tools, which currently only contains Percona XtraBackup and its dependencies.
If you want to install MariaDB with apt, then you can configure apt to install from MariaDB Foundation's MariaDB Repository by using the MariaDB Repository Configuration Tool.
The MariaDB Foundation provides a MariaDB repository for several Linux distributions that use apt-get to manage packages. This repository contains software packages related to MariaDB Server, including the server itself, clients and utilities, client libraries, plugins, and mariadb-backup. The MariaDB Repository Configuration Tool can easily generate the appropriate commands to add the repository for your distribution.
There are several ways to add the repository.
Executing add-apt-repository
One way to add an apt repository is by using the add-apt-repository command. This command will add the repository configuration to /etc/apt/sources.list.
For example, if you wanted to use the repository to install MariaDB 10.6 on Ubuntu 18.04 LTS (Bionic), then you could use the following commands to add the MariaDB apt repository:
And then you would have to update the package cache by executing the following command:
Creating a Source List File
Another way to add an apt repository is by creating a source list file in /etc/apt/sources.list.d/.
For example, if you wanted to use the repository to install MariaDB 10.6 on Ubuntu 18.04 LTS (Bionic), then you could create the MariaDB.list file in /etc/apt/sources.list.d/ with the following contents to add the MariaDB apt repository:
And then you would have to update the package cache by executing the following command:
You can do this by going to the Software Sources window. This window can be opened either by navigating to Edit > Software Sources or by navigating to System > Administration > Software Sources.
Once the Software Sources window is open, go to the Other Software tab, and click the Add button. At that point, you can input the repository information provided by the MariaDB Repository Configuration Tool.
You can do this by going to the Software Sources window. This window can be opened either by navigating to System > Administrator > Software Sources or by navigating to Settings > Repositories.
Once the Software Sources window is open, go to the Other Software tab, and click the Add button. At that point, you can input the repository information provided by the MariaDB Repository Configuration Tool.
Pinning the MariaDB Repository to the repository of a Specific Minor Release
If you wish to pin the apt repository to a specific minor release, or if you would like to downgrade to a specific minor release, then you can create an apt repository with the URL hard-coded to that specific minor release.
The full list of MariaDB Enterprise Server releases can be found on the page.
If you used the MariaDB Foundation's Repository Configuration tool, then you need to update the repository file you created to include the full version number. By default the Foundation's tool configures repositories with just the main series of MariaDB, e.g. mariadb-11.8, and to pin to a specific version you need to specify the full version, for example mariadb-11.8.6. The full list of MariaDB Community Server releases can be found on the page.
Archives are only of the distros and architectures supported at the time of release. For example, MariaDB Community Server 10.6.21 exists for Ubuntu bionic, focal, jammy, and kinetic, and the list of what distributions are available is obtained by looking in the dists folder of the or repositories.
For example, if you wanted to pin your repository to on Ubuntu 20.04 LTS (Focal), then you would have to first remove any existing MariaDB repository source list file from /etc/apt/sources.list.d/. And then you could use the following commands to add the MariaDB apt-get repository:
Ensure you have the .
Ubuntu Xenial and older will need:
And then you would have to update the package cache by executing the following command:
Updating the MariaDB APT repository to a New Major Release
MariaDB's apt repository can be updated to a new major release. How this is done depends on how you originally configured the repository.
Updating the Major Release with the MariaDB Package Repository Setup Script
If you configured apt to install from MariaDB Corporation's MariaDB Package Repository by using the MariaDB Package Repository setup script, then you can update the major release that the repository uses by running the script again.
Updating the Major Release with the MariaDB Foundation's Repository Configuration Tool
If you configured apt to install from MariaDB Foundation's MariaDB Repository by using the MariaDB Repository Configuration Tool, then you can update the major release in various ways, depending on how you originally added the repository.
Updating a Repository with add-apt-repository
If you added the apt repository by using the add-apt-repository command, then you can update the major release that the repository uses by using the add-apt-repository command again.
First, look for the repository string for the old version in /etc/apt/sources.list.
And then, you can remove the repository for the old version by executing the add-apt-repository command and providing the --remove option. For example, if you wanted to remove a MariaDB 10.6 repository, then you could do so by executing something like the following:
After that, you can add the repository for the new version with the add-apt-repository command. For example, if you wanted to use the repository to install MariaDB 10.6 on Ubuntu 18.04 LTS (Bionic), then you could use the following commands to add the MariaDB apt repository:
And then you would have to update the package cache by executing the following command:
If you added the apt repository by creating a source list file in /etc/apt/sources.list.d/, then you can update the major release that the repository uses by updating the source list file in-place. For example, if you wanted to change the repository from to MariaDB 10.6, and if the source list file was at /etc/apt/sources.list.d/MariaDB.list, then you could execute the following:
And then you would have to update the package cache by executing the following command:
Before MariaDB can be installed, you also have to import the GPG public key that is used to verify the digital signatures of the packages in our repositories. This allows the apt utility to verify the integrity of the packages that it installs.
For MariaDB Community Server, see the MariaDB Community Server Debian / Ubuntu key section of the GPG page for details on how to import the key used by those repositories on your Debian or Ubuntu system.
For MariaDB Enterprise Server, see the MariaDB Enterprise GPG Keys section of the GPG page for details on how to import the key used by those repositories on your Debian or Ubuntu system.
Starting with Debian 9 (Stretch), the dirmngr package needs to be installed before the GPG public key can be imported. To install it, execute: sudo apt install dirmngr
Once the GPG public key is imported, you are ready to install packages from the repository.
Installing MariaDB Packages with APT
After the apt repository is configured, you can install MariaDB by executing the apt-get command. The specific command that you would use would depend on which specific packages that you want to install.
Installing the Most Common Packages with APT
To Install the most common packages, first you would have to update the package cache by executing the following command:
To Install the most common packages, execute the following command:
Installing MariaDB Server with APT
To Install MariaDB Server, first you would have to update the package cache by executing the following command:
Then, execute the following command:
Installing MariaDB Galera Cluster with APT
The process to install MariaDB Galera Cluster with the MariaDB apt-get repository is practically the same as installing standard MariaDB Server.
Galera Cluster support is included in the standard MariaDB Server packages, so you will need to install the mariadb-server package, as you normally would.
You also need to install the galera-4 package to obtain the 4 wsrep provider library.
To install MariaDB Galera Cluster, first you would have to update the package cache by executing the following command:
To install MariaDB Galera Cluster, you could execute the following command:
MariaDB Galera Cluster also has a separate package that can be installed on arbitrator nodes. The package is called galera-arbitrator-4. This package should be installed on whatever node you want to serve as the arbitrator. It can either run on a separate server that is not acting as a cluster node, which is the recommended configuration, or it can run on a server that is also acting as an existing cluster node.
To install the arbitrator package, you could execute the following command:
See Galera Cluster for more information on MariaDB Galera Cluster.
Installing MariaDB Clients and Client Libraries with APT
For example, to install the cracklib_password_check password validation plugin, first you would have to update the package cache by executing the following command:
Then, execute the following command:
Installing Older Versions from the Repository
The MariaDB apt repository contains the last few versions of MariaDB. To show what versions are available, use the apt-cache command:
There will be a lot of output, but in the "Provides" section at the end of the output you will see the available versions. For example:
In the above example there are four versions available, two from the MariaDB repositories, and two from the Ubuntu repositories. The versions from MariaDB have "maria" in the version number, and the versions from Ubuntu have "ubuntu" in the version number.
To install an older version of a package instead of the latest version we just need to specify the package name, an equal sign, and then the complete version number. From the example above, the complete version number for MariaDB 12.0.2 is: 1:12.0.2+maria~ubu2404
However, when installing an older version of a package, apt will automatically choose to install the latest versions of any dependencies, which doesn't work for dependencies of the mariadb-server package like mariadb-client and mariadb-server-core.
To ensure that all MariaDB packages are on the same version in this scenario, it is necessary to specify them all. Therefore, to install the 12.0.2 version of the mariadb-server package from this apt repository, we would do the following (using a variable to hold the version number, and putting each package on its own line so things are cleaner):
For MariaDB Enterprise, version numbers are similar, but have an extra point. For example, MariaDB Enterprise Server 11.8.5-2 for Ubuntu 24.04 Noble has the version number: 1:11.8.5.2+maria~ubu2404 .
The rest of the install and setup process is as normal.
Installing MariaDB with dpkg
While it is not recommended, it is possible to download and install the.deb packages manually. However, it is generally recommended to use a package manager like apt-get.
A tarball that contains the .deb packages can be downloaded from the following URL:
For example, to install the MariaDB 10.6.21.deb packages on Ubuntu 18.04 LTS (Bionic), you could execute the following:
After Installation
After the installation is complete, you can start MariaDB.
If you are using , then keep in mind that the first node will have to be .
Upgrading to a new version of MariaDB
After updating your repository configuration to move from the repository of one version of MariaDB to a newer version, as per the previous instructions, you will need to upgrade the MariaDB packages, this is done with:
Alternatively you can also run the following to installing the new version:
The reason for specifying the galera-4 package is to ensure the correct updated version of Galera is installed along with the new server version, replacing the versions that were there before.
Available DEB Packages
The available DEB packages depend on the specific MariaDB release series.
Available DEB Packages
For MariaDB, the following DEBs are available:
Package Name
Description
galera-4
The WSREP provider for 4.
libmariadb3
Dynamic client libraries.
libmariadb-dev
Development headers and static libraries.
libmariadbclient18
Actions Performed by DEB Packages
Users and Groups Created
When the mariadb-server DEB package is installed, it will create a user and group named mysql, if they do not already exist.
Complete step-by-step guide for compiling and building MariaDB from source on various flavors of Linux and on macOS.
This guide covers compiling MariaDB on Unix-like systems, including Linux and macOS. If you are building on Windows, please refer to the dedicated guide.
This guide provides the universal workflow for building MariaDB Server from source code. While specific dependencies may vary by operating system, the core build process remains consistent across all modern platforms.
sudo service mysql restart
sudo service mariadb restart
[[mysqld]]
# Cache for disk based temporary files
aria_pagecache_buffer_size=128M
# If you are not using MyISAM tables directly (most people are using InnoDB)
key_buffer_size=64K
# MariaDB 10.6 repository list - created 2019-01-27 09:50 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,arm64,ppc64el] http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.6/ubuntu bionic main
deb-src http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.6/ubuntu bionic main
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mariadb-client : Breaks: mariadb-server (< 1:12.1.2+maria~ubu2404) but 1:12.0.2+maria~ubu2404 is to be installed
mariadb-server-core : Breaks: mariadb-server (< 1:12.1.2+maria~ubu2404) but 1:12.0.2+maria~ubu2404 is to be installed
E: Unable to correct problems, you have held broken packages.
Decide whether you need the latest development branch or a specific stable release.
Option A: Git clone (best for developers)
3
Configure the Build (CMake)
MariaDB uses out-of-source builds to keep the source tree clean. This is where you define installation paths and features.
Create a build directory: mkdir build && cd build
4
Compile
Once configured, use the CMake build tool to compile the binaries. Using the --parallel flag speeds this up by using multiple CPU cores.
5
Install and Initialize
After a successful build, you must prepare the data directory and system tables before the server can start.
Install: sudo cmake --install .
6
Start and Verify
Launch the server and check that it is responsive.
7
Test the Build
Before putting your fresh build into production, verify it against the official test suite. MariaDB includes for this purpose.
Run Unit Tests: Quickly check the core logic.
8
After Building
After successfully building MariaDB from source, additional tasks can be found under .
Summary of the Build Workflow
Step
Action
Primary Tool
1
Install Build Tools
apt / dnf / brew
2
Download Source
git / wget
Preparing Your Environment: Install Build Dependencies
This section covers the details of step 1 (Prepare Your Environment).
To compile MariaDB, you need a set of core build tools and development headers for various libraries.
Setting up the MariaDB Source Repository
Setting up the MariaDB source repository is optional but recommended. If you want to build the MariaDB version that comes with your operating system, you can skip this subsection, though.
Adding the MariaDB Repository Tool into the workflow ensures that you are getting the dependencies specifically tailored for the version of MariaDB you want to build (for instance, 11.8), rather than whatever outdated version happens to be in your operating system's default upstream repository.
Using the MariaDB Repository Tool
While your operating system's default repositories contain many build tools, they may lack the specific library versions required for the latest MariaDB releases. Using the MariaDB Repository Tool ensures your environment is perfectly synced with the version you intend to build.
Example for Ubuntu 24.04 and MariaDB 11.8 (don't copy this blindly – the example uses the 11.8 release and a specific mirror; adjust these strings based on the output of the Repository Configuration Tool):
2. Install Tailored Dependencies
Once the repository is active and the source lines are enabled, you can use the package manager to pull exactly what that specific MariaDB version requires:
Advantages of Using the Repository Tool
Version Accuracy: If MariaDB 11.x requires a newer libssl or zstd than what your operating system provides by default, the MariaDB repo often provides the correct headers.
Completeness: It automatically handles the "Source Repositories" issue because the add-apt-repository command includes the --enable-source flag by default.
Automation: It reduces the "Manual Package Table" from a primary task to a fallback for users who cannot or will not add external repositories.
The "Shortcut" Command
Most Linux distributions allow you to install all necessary dependencies for the "official" build with a single command.
This requires that "source repositories" are enabled in your package manager. Enable them like this:
Run this command:
Edit /etc/apt/sources.list and uncomment lines starting with deb-src.
Run dnf config-manager --set-enabled baseos-source appstream-source .
Source repos are usually enabled by default, but check dnf repolist to verify.
The shortcut command itself varies by operating system:
If you plan to enable specific storage engines or features, install these additional packages:
Feature
Dependency
Package Name (Generic)
S3 Storage Engine
libcurl
libcurl-devel / libcurl4-openssl-dev
GSSAPI (Kerberos)
krb5
krb5-devel / libkrb5-dev
Obtaining the Source Code
This section covers the details of step 2 (Obtain the Source Code).
Depending on your goal, you can either clone the repository using Git or download a stable source tarball.
Option A: Git Clone (Recommended for Developers)
Using Git allows you to easily switch between versions and contribute patches. MariaDB uses submodules for certain components; you must initialize these for the build to succeed.
Clone the specific branch:
Choose a branch that matches the major version you need (for instance, 11.8).
Initialize Submodules:
This command downloads the source code for external storage engines and connectors.
Option B: Source Tarball (Best for Stability)
If you do not need version control, downloading a pre-packaged source tarball is simpler. Submodules are already included in the tarball, so no extra steps are required.
Most plugins are auto-detected based on the dependencies you installed in step 1. To see a full list of available options and their current status, run:
The Quick Way: Using BUILD Scripts
This section covers alternative details of step 3 (Configure the Build).
If you don't want to manually toggle CMake flags, MariaDB includes a BUILD/ directory containing pre-configured scripts for common development environments. These are especially useful for developers who need a specific setup (like a Debug build with Valgrind support) quickly.
How to Use a BUILD Script
These scripts must be run from the root of the source directory (unlike the manual "out-of-source" CMake method).
Common Script Variants
Most scripts follow a naming convention: compile-[architecture]-[type].
Script
Best For...
compile-pentium64-debug
Standard 64-bit development with debug symbols.
compile-pentium64-max
Enables almost all features and plugins (highest compatibility).
compile-pentium64-valgrind-max
Optimized for memory testing with Valgrind.
compile-amd64-debian-build
Adding Extra Flags
You can still pass custom CMake flags to these scripts using environment variables or arguments, though most users find the defaults sufficient for testing.
Troubleshooting Common Build Errors
This section covers details of step 4 (Compile).
Compiling from source often hits roadblocks. Here are the most common issues and how to fix them.
Error Message
Likely Cause
Solution
CMAKE_CXX_COMPILER not found
Missing C++ compiler.
Install g++ (Linux) or clang (macOS).
Bison version is too old
macOS default bison is outdated.
brew install bison and update your PATH.
The "Clean Slate" Command
If you changed your CMake flags and things are getting weird, the best fix is to wipe the cache and start over.
Do not delete the source directory, only the contents of the build folder.
Notes
Conventional Data Directory Locations
This table lists typical locations of --datadir.
Platform
Conventional Data Directory
Linux (General)
/var/lib/mysql
macOS (Homebrew)
/opt/homebrew/var/mysql
macOS (Intel/Legacy)
/usr/local/var/mysql
FreeBSD
Post-Build
This section covers optional additional things to do after building MariaDB successfully (step 8 (After Building)).
Packaging
If you need to deploy MariaDB to multiple servers, you don't have to compile it on every machine. Instead, use MariaDB’s built-in packaging support to create a distributable package.
MariaDB uses CPack (part of the CMake suite) to generate these packages.
Configure for Packaging: To ensure the package follows standard filesystem hierarchies, use the mysql_release configuration.
Generate the Package: After the build is complete, run cpack from your build directory.
Result: You will find a file like mariadb-11.x.x-linux-x86_64.deb in your build directory, which can be installed via dpkg -i or rpm -ivh.
git clone --branch 11.8 https://github.com/MariaDB/server.git
cd server
git submodule update --init --recursive
tar -xf mariadb-11.8.x.tar.gz
cd mariadb-11.8.x
cmake .. -DBUILD_CONFIG=mysql_release
# To create the default package for your OS (DEB on Ubuntu/Debian, RPM on RHEL)
cpack -G DEB # For Debian-based
cpack -G RPM # For RedHat-based
cpack -G TGZ # For a generic binary tarball
(or run directly from the build directory for testing).
Create Data Directory: Ensure the mysql user exists and has permissions.
Initialize System Tables.
If running from the build directory (use this if you did not run the cmake install command – in that case, you must run the script from within your build folder):
If you installed to the system (sudo cmake --install ..., in which case the PATH to mariadb-install-db is set):
Complete guide to MariaDB package repositories. Complete setup instructions for APT, YUM, Zypper with GPG keys and configurations for production use.
Overview
If you are looking to set up MariaDB Server, it is often easiest to use a repository. MariaDB Foundation has a repository configuration tool and MariaDB Corporation provides two convenient shell scripts to configure access to their MariaDB Package Repositories:
mariadb_es_repo_setup for MariaDB Enterprise Server, which can be downloaded from:
mariadb_repo_setup for MariaDB Community Server, which can be downloaded from:
Using MariaDB Foundation's Repository Configuration Tool
Visit and follow the instructions from there. It will ask for your Linux distribution, desired MariaDB version, and the mirror to use, and will show what files to edit and what commands to run to configure a repository.
Using MariaDB Corporation's Repository Setup Scripts
Alternatively, you can run a convenient shell script that will automatically configure a repository for you.
Download and Verify the Script
The repository setup script can be downloaded and verified in the following way:
Download the script:
Verify the checksum of the script:
Download the script:
Verify the checksum of the script:
Checksums of the various releases of the MariaDB Corporation's repository setup scripts can be found in the section at the bottom of this page. Substitute ${checksum} in the example above with the checksum of the version of the script you are using.
Prerequisites
For the script to work, the curl package needs to be installed on your system. Additionally, on Debian and Ubuntu, the apt-transport-https package needs to be installed. The script will check if these are installed and let you know before it attempts to create the repository configuration on your system.
They can be installed on your system as follows:
Run the Script
After the script is downloaded, you need to run it with root user permissions. This is normally accomplished by using the sudo command:
Retrieve your customer downloads token:
Navigate to and log in
Copy the Customer Download Token
Substitute your token for ${token} when running the mariadb_es_repo_setup
Repositories
The script will set up different repositories in a single repository configuration file.
The default repositories set up by mariadb_es_repo_setup are:
MariaDB Enterprise Server Repository
A MariaDB Enterprise Server Debug Repository (Ubuntu only)
MariaDB Enterprise MaxScale Repository
The default repositories set up by mariadb_repo_setup are:
MariaDB Community Server Repository
MariaDB Community Server Debug Repository (Ubuntu only)
MariaDB MaxScale Repository
MariaDB Tools Repository
Ubuntu needs a separate debug repository for MariaDB Server debug packages. Other Linux distributions include the debug packages in the main repository. Debug packages should normally only be installed for specific purposes under the direction of a qualified support engineer.
MariaDB Community Server Repository
The MariaDB Community Server Repository contains software packages related to MariaDB Server, including the server itself, , , , and .
The binaries in MariaDB Corporation's MariaDB Repository are identical to the binaries in MariaDB Foundation's MariaDB Repository that is configured with the .
By default, the mariadb_repo_setup script will configure your system to install from the 12.rolling repository, which contains the latest stable version of MariaDB Community server.
The mariadb_es_repo_setup script will set up the current latest stable version of MariaDB Enterprise Server.
If you would like to stick to a specific release series, then you will need to either manually edit the repository configuration file to point to that specific version or series, or run the MariaDB Package Repository setup script again using the --mariadb-server-version option. For example, if you wanted to specifically use the 11.4 series, you would do: --mariadb-server-version=11.4.
If you do not want to configure the MariaDB Repository on your system, for example, if you are setting up a server just running MariaDB MaxScale, then you can use the --skip-server option to prevent the setup script from configuring the server repository.
MariaDB MaxScale Repository
Note
MaxScale releases, as of 2025-12-09, are now signed with a new key. The mariadb_repo_setup and mariadb_es_repo_setup scripts have been updated to automatically install the new key, but for existing repositories, you'll need to do the following.
The MariaDB MaxScale Repository contains software packages related to .
By default, the script will configure your system to install from the repository of the latest GA version of MariaDB MaxScale. When a new major GA release occurs, the repository will automatically switch to the new version. If instead you would like to stay on a particular version, you will need to manually edit the repository configuration file and change 'latest' to the version you want (e.g., '6.1') or run the MariaDB Package Repository setup script again, specifying the particular version or series you want.
Older versions of the MariaDB Package Repository setup script would configure a specific MariaDB MaxScale series in the repository (i.e., 24.02), so if you used the script in the past to set up your repository and want MariaDB MaxScale to automatically use the latest GA version, then change 24.02 or whatever version it is set to in the repository configuration to latest. Or download the current version of the setup script and re-run it to set up the repository again.
The script can configure your system to install from the repository of an older version of MariaDB MaxScale if you use the --mariadb-maxscale-version option. For example, --mariadb-maxscale-version=25.01.
If you do not want to configure the MariaDB MaxScale Repository on your system, then you can use the --skip-maxscale option to prevent the setup script from configuring it.
Supported Distributions
The MariaDB Package Repository setup script is designed for Linux distributions that meet MariaDB's current platform support policy. Supported platforms may vary over time and can differ across different MariaDB release series.
For a comprehensive and current list of supported platforms, refer to:
The page for your specific version
If the setup script does not support your distribution, you can install MariaDB using the MariaDB Foundation's or check your distribution's for MariaDB packages.
Options
To provide options to the script, you must tell your script to expect them by executing bash with the options -s --, for example:
Option
Description
--mariadb-server-version
By default, the script will configure your system to install from the repository of the latest GA version of MariaDB. If a new major GA release occurs and you would like to upgrade to it, then you will need to either manually edit the repository configuration file to point to the new version or run the MariaDB Package Repository setup script again.
The script can also configure your system to install from the repository of a different version of MariaDB if you use the --mariadb-server-version option.
Usage Example
With mariadb_es_repo_setup for MariaDB Enterprise Server, to configure your system to install from the MariaDB Enterprise Server 11.8 repository you would do:
To specify a specific MariaDB Enterprise Server release, you need to put in the full version number, e.g. for MariaDB Enterprise Server 11.8.5-2:
For more details see
With mariadb_repo_setup for MariaDB Community Server, the string mariadb- has to be prepended to the version number. For example, to configure your system to install from the repository of MariaDB 11.8, that would be:
To specify a specific MariaDB Community Server release, you need to put in the full version number, e.g. for MariaDB Community Server 11.8.5:
Current Supported Major Versions
The following MariaDB Enterprise Server versions are currently supported:
10.6
11.4
Pinning the Repository to a Specific Minor Release
If you want to pin the repository of a specific minor release, such as , then you need to specify the full release version number, e.g. 11.8.5-2. This may be helpful if you want to avoid automatic upgrades. However, avoiding upgrades is not recommended, since minor maintenance releases may contain important bug fixes and fixes for security vulnerabilities.
Note: MariaDB Enterprise Server version numbers include a 'release' suffix that differs from MariaDB Community Server version numbers, e.g. -2 for MariaDB Enterprise Server 11.8.5-2 whereas the equivalent MariaDB Community Server release is just 11.8.5. This suffix is required when specifying the full Enterprise Server version number.
--mariadb-maxscale-version
By default, the script will configure your system to install from the repository of the latest GA version of MariaDB MaxScale.
If you would like to pin the repository to a specific version of MariaDB MaxScale, then you will need
to either manually edit the repository configuration file to point to the desired version or use the --mariadb-maxscale-version option.
For example, to configure your system to install from the repository of MariaDB MaxScale 6.1, that would be:
The following MariaDB MaxScale versions are currently supported:
MaxScale 25.10
MaxScale 25.01
MaxScale 24.02
MaxScale 23.08
The special identifiers latest (for the latest GA release) and beta (for the latest beta release) are also supported. By default, the mariadb_repo_setup script uses latest as the version.
--os-type and --os-version
If you want to run this script on an unsupported OS that you believe to be package-compatible with an OS that is supported, then you can use the --os-type and --os-version options to override the script's OS detection. If you use either option, then you must use both options.
The supported values for --os-type are:
rhel
debian
ubuntu
If you use a non-supported value, then the script will fail, just as it would fail if you ran the script on an unsupported OS.
The supported values for --os-version are entirely dependent on the OS type.
For Red Hat Enterprise Linux (RHEL): 8, 9, and 10 are valid options.
For Debian and Ubuntu, the version must be specified as the codename of the specific release. For example, Debian 13 must be specified as trixie, and Ubuntu 24.04 must be specified as noble.
These options can be useful if your distribution is a fork of another distribution. As an example, Pop!_OS 24.04 LTS is based on and is fully compatible with Ubuntu 24.04 LTS (noble). Therefore, if you are using Pop!_OS, then you can configure your system to install from the repository of Ubuntu 24.04 LTS (noble) by specifying --os-type=ubuntu`` ``--os-version=noble to the MariaDB Package Repository setup script.
For example, to manually set the --os-type and --os-version to RHEL 10, you could do:
--write-to-stdout
The --write-to-stdout option will prevent the script from modifying anything on the system. The repository configuration will not be written to the repository configuration file. Instead, it will be printed to standard output. That allows the configuration to be reviewed, redirected elsewhere, consumed by another script, or used in some other way.
The --write-to-stdout option automatically enables --skip-key-import.
For example:
Platform-Specific Behavior
Platform-Specific Behavior on RHEL and equivalents
On Red Hat Enterprise Linux (RHEL) and equivalents, the MariaDB Package Repository setup script performs the following tasks:
Creates a repository configuration file at /etc/yum.repos.d/mariadb.repo
Imports the GPG public key used to verify the signature of MariaDB software packages with rpm --import from supplychain.mariadb.com
Installing Packages With the MariaDB Package Repository
After setting up the MariaDB Package Repository, you can install the software packages in the supported repositories.
Installing Packages on RHEL and equivalents
To install MariaDB on Red Hat Enterprise Linux (RHEL) and equivalents, see the instructions in the . For example:
To install MariaDB MaxScale on Red Hat Enterprise Linux (RHEL) and equivalents, see the instructions at . For example:
Installing Packages on Debian and Ubuntu
To install MariaDB on Debian and Ubuntu, see the instructions at . For example:
To install MariaDB MaxScale on Debian and Ubuntu, see the instructions at . For example:
Override detection of OS version. Acceptable values depend on the OS type you specify
--skip-key-import
Skip importing GPG signing keys
--skip-maxscale
Skip the 'MaxScale' repository
--skip-server
Skip the 'MariaDB Server' repository
--skip-tools
Skip the 'Tools' repository
--skip-verify
Skip verification of MariaDB Server versions. Use with caution, as this can lead to an invalid repository configuration file being created
--skip-check-installed
Skip tests for required prerequisites for this script
--skip-eol-check
Skip tests for versions that are past their EOL date
--skip-os-eol-check
Skip tests for operating system versions past the EOL date
--write-to-stdout
Write output to stdout instead of to the OS's repository configuration file. This will also skip importing GPG public keys and updating the package cache on platforms where that behavior exists
The following MariaDB Community Server versions are currently supported:
mariadb-10.6
mariadb-10.11
mariadb-11.4
mariadb-11.8
mariadb-11.rolling
mariadb-11.rc
mariadb-12.1
mariadb-12.2
mariadb-12.rolling
mariadb-12.rc
To get a list of all MariaDB Enterprise Server releases, see the page. The Version column in the tables on that page list the version numbers of every MariaDB Enterprise Server release.
If you want to pin the repository of a specific minor release, such as , then you need to specify the complete release version, e.g. mariadb-11.8.5. This may be helpful if you want to avoid upgrades. However, avoiding upgrades is not recommended, since minor maintenance releases may contain important bug fixes and fixes for security vulnerabilities.
To get a list of all MariaDB Community Server releases, see the page. The Version column in the tables on that page list the version numbers of every MariaDB Community Server release.
On Debian and Ubuntu, the MariaDB Package Repository setup script performs the following tasks:
Creates a repository configuration file at /etc/apt/sources.list.d/mariadb.list
Creates a package preferences file at /etc/apt/preferences.d/mariadb-enterprise.pref, which gives packages from MariaDB repositories a higher priority than packages from OS and other repositories, which can help avoid conflicts. It looks like the following:
Imports the GPG public key used to verify the signature of MariaDB software package
Updates the package cache with package definitions from the MariaDB Package Repository with apt update
Platform-Specific Behavior on SLES
On SUSE Linux Enterprise Server (SLES), the MariaDB Package Repository setup script performs the following tasks:
Creates a repository configuration file at /etc/zypp/repos.d/mariadb.repo
Imports the GPG public key used to verify the signature of MariaDB software packages with rpm --import from supplychain.mariadb.com
Upgrading from MariaDB Enterprise Server 10.6 to 11.8
This guide outlines the process for performing a major version upgrade from MariaDB Enterprise Server (ES) 10.6 directly to MariaDB Enterprise Server 11.8.
This guide assumes you are running on a variant of Linux that uses systemd to manage services (such as RHEL, CentOS, AlmaLinux, Rocky Linux, Debian, Ubuntu, or SLES).
Prerequisites
Before beginning the upgrade, ensure these precautionary measures and environment checks are completed to protect your data.
Data Backup and Integrity
Perform a Full Backup: Use mariadb-backup to create a complete copy of your current data.
Prepare the Backup: Consolidate the backup files so they are ready for immediate restoration if required.
Verify Recoverability: Test your backup by restoring it to a non-production environment before proceeding.
Service and Plugin Preparation
Audit Plugin Transition: If you currently use the MariaDB 10.6 Audit Plugin (server_audit.so), it is recommended to transition to the MariaDB Enterprise Audit Plugin during this upgrade. If you maintain the Community version, ensure your configuration explicitly loads it to avoid conflicts.
Commit or Roll Back XA Transactions: Run XA RECOVER; to identify any external XA transactions in a prepared state; these must be finalized before the service is stopped.
Compatibility & Legacy Support
This ensures the team can maintain 10.6 behavior for applications that aren't ready for the new defaults.
Handling Non-Default Character Sets: If your 10.6 instance uses latin1 or utf8mb3, do not switch to utf8mb4 immediately. You must explicitly define your existing character set in the new my.cnf to override the 11.8 defaults.
The OLD_MODE Tip: Set old_mode = UTF8_IS_UTF8MB3 in your configuration; this ensures that
Environment Compatibility
Engineering Policy: Verify your operating system version is still supported for the 11.8 series by checking the .
Customer Token: Have your Customer Download Token ready for the repository configuration step.
The Upgrade Procedure
1
Perform a Controlled Shutdown of 10.6
Initiate Fast Shutdown to ensure the InnoDB engine closes cleanly.
Incompatible and Significant Changes
The following variables from version 10.6 have been removed, renamed, or deprecated in the 11.8 release series.
New Variables Added in 11.8
Once the , update your to define these new variables.
Optimizer Cost Model Variables
Handle with care
Because the 11.8 engine uses a completely new "weighting" system designed for modern storage (SSDs), altering these variables without extensive benchmarks can lead to severe performance degradation or inefficient query execution plans. It is strongly recommended to keep these at their defaults upon upgradation unless you are performing expert-level performance tuning.
These variables define the weights of the new optimizer. If query execution plans change after the upgrade, these parameters are the primary audit points and represent .
Variable Name
11.8 Default
Note
InnoDB Variables
InnoDB used complex buffering (like the "Change Buffer") to delay writes because hard drives were slow at random I/O. In version 11.8, these legacy layers are being stripped back. The following allow MariaDB to communicate more directly with modern SSD/NVMe storage, reducing the "middleman" overhead of the Operating System's cache.
Variable Name
11.8 Default
Replication & Binlog Variables
As clusters grow, managing the Global Transaction ID (GTID) list becomes a performance bottleneck. 11.8 introduces "GTID Indexing," which treats the replication and log more like a database table, allowing for near-instant lookups when a replica reconnects. See to learn more about the variables.
Variable Name
11.8 Default
Note
Advanced Logging Variables
Slow logging was often a "blunt instrument" that could either miss critical spikes or flood the disk with useless data. Version 11.8 introduces granular filters. You can now tell the engine to ignore queries that touch many rows but are still fast, or to ensure that queries exceeding a specific "emergency" duration are always captured, regardless of other filters. See to learn more about the following variables
Variable Name
11.8 Default
Security & Authentication Variables
MariaDB 11.8 shifts toward modern cryptographic standards. This includes better handling of User Defined Functions (UDFs) and a transition toward the plugin, which provides significantly stronger protection against "man-in-the-middle" and brute-force attacks compared to legacy authentication.
Variable Name
11.8 Default
Resource Limits Variables
A single unoptimized query could theoretically consume all available disk space by creating a massive temporary table, crashing the entire operating system. Version 11.8 introduces "Safety Valves" that allow administrators to set hard limits on how much temporary space a single session or the entire server can use.
Variable Name
11.8 Default
Vector Search / MHNSW Variables
MariaDB 11.8 introduces a native Vector Search engine using the Metadata-HNSW (Hierarchical Navigable Small Worlds) algorithm. This allows the database to store and query "embeddings" (mathematical representations of text/images), enabling AI-powered semantic search directly within the SQL layer.
A feature entirely absent in MariaDB 10.6, MariaDB 11.8 introduced native Vector Search (MHNSW).
Primary Config: Use MHNSW_DEFAULT_DISTANCE to define semantic search logic (default: euclidean).
Variable Name
11.8 Default
General Architecture Changes Variables
The final group of changes focuses on renaming legacy variables for industry compliance (SQL Standard) and adding features that improve how the database communicates with external tools, such as proxies or system-versioning audit logs.
Variable Name
11.8 Default
Note
#Handle them with extra care
These variables have the highest impact on system stability and performance; please review during your configuration updates.
^Caution
These variables may impact system stability and performance; please review during your configuration updates.
Options to Remove, Rename, or Update in 11.8
Removed, Superseded or Renamed Options
During the maintenance window (after stopping 10.6 and before starting 11.8), you must scrub your my.cnf of all removed, superseded and renamed options.
Variable Name
10.6 Default
Technical Action / Replacement
¹Fatal Error
MariaDB 11.8 will abort startup if these legacy parameters are detected in the configuration file. These parameters MUST be removed prior to restart to prevent upgrade failure.
MariaDB 11.8 will start but log a warning if these legacy parameters are detected in the configuration file. Scrub the file of these parameter during the upgrade to maintain configuration hygiene and ensure settings reflect active 11.8 features.
Warning Example: [Warning] 'innodb-change-buffering' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
Options That Have Changed Default Values
For variables that have existed in both versions but have different defaults (e.g., innodb_purge_batch_size), the 11.8 engine will automatically apply the new value. If you require identical behavior to your 10.6 environment during the initial cutover, you must explicitly hardcode the 10.6 values into your new configuration file.
Options
10.6 Default
11.8 Default
Impact / Note
Deprecated Options
Option
Reason / Recommendation
Reverse Replication (11.8 to 10.6)
If a critical regression is discovered, you can use an existing 10.6 machine in your setup as a failback safety net.
Replicating from a MariaDB 11.8 Primary to a MariaDB 10.6 Replica is NOT officially supported by MariaDB Engineering. This configuration should only be used as a temporary emergency safety net during the upgrade window.
Required 11.8 Primary Configuration
To prevent the 10.6 replica from crashing due to modern metadata (such as the #2304 character set ID), the 11.8 Primary must be configured to "downgrade" its binary log output using a compatibility file.
The rollback_compat.cnf Setup
Create a standalone configuration file to house these temporary reversion settings at /etc/my.cnf.d/rollback_compat.cnf
To activate these settings, append the following line to the end of the [mariadb] section in your primary /etc/my.cnf file: !include /etc/my.cnf.d/rollback_compat.cnf
Critical Compatibility Step
MariaDB 11.8 uses a new default collation ID (#2304) that version 10.6 does not recognize. To prevent the 10.6 replica from crashing, you must set character_set_collations = '' on the 11.8 Primary. This forces the Primary to use legacy IDs that the 10.6 machine can process
Known "Breaking" Factors
Certain 11.8 features will immediately break the 10.6 replication link if used:
Vector Data Types: Any INSERT or UPDATE involving a VECTOR(N) column.
New Functions: Use of VEC_Distance or other 11.8-specific SQL functions.
Note on Existing Nodes
You do not need a new machine for reverse replication. You can use an existing 10.6 node already in your setup. Simply stop replication on that node before the upgrade, and resume it once the 11.8 Primary is configured for compatibility.
Operational Steps for the Safety Net
1
Isolate a 10.6 Node
Before upgrading your entire environment, identify one existing replica to remain on version 10.6. Stop the replication on this node just before you upgrade the Primary to 11.8.
2
Post-Upgrade Verification
After the data upgrade is complete, verify the functionality of 11.8 features:
Confirm Version: SELECT VERSION(); should reflect the 11.8 GA series.
Confirm Vector Search: Verify the new VECTOR(N) data type and conversion functions.
Verify Optimizer Performance: Prefix any SQL query with ANALYZE FORMAT=JSON on upgraded 11.8 instances to audit the new SSD-aware cost model:
remains an alias for the legacy 3-byte character set instead of the new 4-byte standard.
Maintaining SSL Compatibility: Version 11.4+ enables "Zero-configuration TLS" by default. If your application does not support SSL, set require_secure_transport = OFF in the [mariadb] section of your my.cnf to prevent connection refusals.
Stop the Service mariadb.
2
Purge Legacy 10.6 Packages
Remove the old version to prevent package manager conflicts before installing 11.8.
Do not apply 11.8-specific variables while the 10.6 service is active. During the package swap, update my.cnf to adopt the 11.8 defaults for the . These variables replace legacy hardcoded logic and are essential for the new engine's performance.
Stabilize: Set NEW_MODE = OFF to prevent unpredictable execution plan changes on Day 1.
Recommended my.cnf for Version 11.8 section
6
Bring the Service Online and Finalize Data
Start the New Service: sudo systemctl start mariadb.
Execute the Data Upgrade Utility: This corrects system table structures and marks data files as compatible with version 11.8.
0.02
OPTIMIZER_EXTRA_PRUNING_DEPTH
8
OPTIMIZER_INDEX_BLOCK_COPY_COST
0.0356
OPTIMIZER_KEY_COMPARE_COST
0.011361
OPTIMIZER_KEY_COPY_COST
0.015685
OPTIMIZER_KEY_LOOKUP_COST
0.435777
OPTIMIZER_KEY_NEXT_FIND_COST
0.082347
OPTIMIZER_ROWID_COMPARE_COST
0.002653
OPTIMIZER_ROWID_COPY_COST
0.002653
OPTIMIZER_ROW_COPY_COST
0.060866
OPTIMIZER_ROW_LOOKUP_COST
0.130839
OPTIMIZER_ROW_NEXT_FIND_COST
0.045916
OPTIMIZER_SCAN_SETUP_COST
10
OPTIMIZER_WHERE_COST
0.032
INNODB_DATA_FILE_BUFFERING
OFF
INNODB_DATA_FILE_WRITE_THROUGH
OFF
INNODB_LINUX_AIO
auto
INNODB_LOG_CHECKPOINT_NOW
OFF
INNODB_LOG_FILE_BUFFERING
OFF
INNODB_LOG_FILE_MMAP
OFF
INNODB_LOG_FILE_WRITE_THROUGH
OFF
INNODB_LOG_SPIN_WAIT_DELAY
0
INNODB_TRUNCATE_TEMPORARY_TABLESPACE_NOW
OFF
ON
#
4096
#
65536
BINLOG_IGNORE_DB
(None)
BINLOG_LARGE_COMMIT_THRESHOLD
134217728
#
OFF
#
8192
Packet Safety: Ensure this value on the 11.8 Primary is strictly lower than the MAX_ALLOWED_PACKET setting on your 10.6 Replicas. If an 11.8 row event exceeds the legacy replica's packet limit, replication will fail with a "Packet too large on slave" error.
BINLOG_SPACE_LIMIT
0
#
(None)
SLAVE_ABORT_BLOCKING_TIMEOUT
31536000
#
1
Binary Log Purge Safety:
The default value is 1. If your topology requires that binary logs be retained until they are acknowledged by multiple replicas, increase this value to prevent the primary from purging logs before all critical slaves have synchronized the data.
SLAVE_MAX_STATEMENT_TIME
0
LOG_SLOW_QUERY_TIME
10
Compatibility Warning: Legacy 10.6 replicas cannot process vector data types or SQL functions; using them will break the replication link.
aes-128-ecb
High; Block_encryption_mode default on 11.8 is fine, but we should be careful when calling AES_ENCRYPT and AES DECRYPT_FUNCTION as syntax is different in 10.6
#
utf8mb4=...
Character_set_collations should be empty for 11.8 -> 10.6
#
REPEATABLE-READ
#
OFF
WSREP_ALLOWLIST
(None)
WSREP_STATUS_FILE
(None)
OFF
Remove. Retired legacy debug code.
INNODB_CHANGE_BUFFERING²
none
Scrub. Logic replaced by SSD-optimized write paths.
INNODB_CHANGE_BUFFER_MAX_SIZE¹
25
Remove. Buffer size is now managed internally by the engine.
INNODB_DEFRAGMENT²
OFF
Scrub. Manual defragmentation is no longer supported.
INNODB_DEFRAGMENT_FILL_FACTOR²
0.9
Scrub. Feature retired; logic is now internal.
INNODB_DEFRAGMENT_FILL_FACTOR_N_RECS²
20
Scrub. Feature retired; logic is now internal.
INNODB_DEFRAGMENT_FREQUENCY²
40
Scrub. Feature retired; logic is now internal.
INNODB_DEFRAGMENT_N_PAGES²
7
Scrub. Feature retired; logic is now internal.
INNODB_DEFRAGMENT_STATS_ACCURACY²
0
Scrub. Feature retired; logic is now internal.
INNODB_VERSION¹
10.6.26
Remove. Versioning is consolidated in global server metadata.
MAX_TMP_TABLES¹
32
Remove. Internal temp table management is now automated.
OLD_ALTER_TABLE¹
DEFAULT
Remove. Superseded by ALTER_ALGORITHM.
TIME_FORMAT²
%H:%i:%s
Scrub. Enforced standard format.
WSREP_CAUSAL_READS²
OFF
Scrub. Superseded by wsrep_sync_wait.
WSREP_LOAD_DATA_SPLITTING¹
OFF
Remove. Legacy Galera splitting logic retired.
WSREP_REPLICATE_MYISAM¹
OFF
Remove. Galera no longer supports MyISAM replication.
WSREP_STRICT_DDL¹
OFF
Remove. Replaced by wsrep_mode=STRICT_REPLICATION.
Modern standard for client connections.
CHARACTER_SET_CONNECTION
latin1
utf8mb4
Modern standard for session connections.
CHARACTER_SET_DATABASE
latin1
utf8mb4
Modern standard for database storage.
CHARACTER_SET_RESULTS
latin1
utf8mb4
Modern standard for query results.
collation_server
latin1_swedish_ci
utf8mb4_uca1400_ai_ci
Transition to the modern Unicode collation standard.
COLLATION_CONNECTION
latin1_swedish_ci
utf8mb4_uca1400_ai_ci
Update to modern Unicode Collation Algorithm (UCA).
COLLATION_DATABASE
latin1_swedish_ci
utf8mb4_uca1400_ai_ci
Update to modern Unicode Collation Algorithm (UCA).
EXPLICIT_DEFAULTS_FOR_TIMESTAMP
OFF
ON
Impacts NULL handling in TIMESTAMPcolumns.
Modify for reverse replication (11.8->10.6) to maintain same behavior on master and slave
HAVE_SSL
DISABLED
YES
SSL/TLS is now natively available and enabled by default.
HISTOGRAM_TYPE
(Empty)
JSON_HB
Optimizer now stores histogram stats in JSON format.
Modify for reverse replication (11.8->10.6) to maintain same behavior on master and slave
Large Row Events: If binlog_row_event_max_size is tuned significantly higher than 10.6 defaults.
Configure 11.8 for Compatibility
Immediately after installing version 11.8 on your Primary, apply the rollback_compat.cnf settings (such as character_set_collations = '' and binlog_checksum = CRC32).
3
Start 11.8 and Rotate Logs
Start the 11.8 service and run FLUSH LOGS;. This ensures the Primary begins writing its binary logs in a format the 10.6 replica can understand.
4
Connect the 10.6 Node
Point your existing 10.6 machine to the new 11.8 Primary. Because the data on the 10.6 node is already consistent with the pre-upgrade state, it can simply "pick up" the new changes from the 11.8 Primary.
This captures real-time execution metrics like engine_cost (measured in ms) and pages_accessed, verifying that the optimizer is correctly prioritizing high-speed storage over legacy 10.6 logic:
Check Replication Lag Fields: On a replica server, run SHOW REPLICA STATUS\G and look for the new Master_Slave_time_diff field.
Row-based replication (RBR) remains unaffected by these changes. However, because the 11.8 Primary uses the new cost model while legacy 10.6 nodes use hardcoded logic, query execution plans may differ significantly between the Master and Slave.
The REDIRECT_URL variable allows the server to send redirection hints to proxies or clients.
Crucial: Configure this carefully on replicas to ensure that internal slave-to-primary connections are not redirected, as accidental redirection of replication traffic will break the sync link.
The default value for this variable is acceptable for standard operations. However, because MariaDB 11.8's mariadb-binlog utility explicitly prints this value in its output, replaying binary logs using the 11.8 version of the tool is not recommended during the transition period.
DATETIME_FORMAT²
%Y-%m-%d %H:%i:%s
Scrub. 11.8 enforces standard internal format strings.