> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-to-unmaintained-mariadb-releases/upgrading-from-mariadb-103-to-mariadb-104.md).

# Upgrading from MariaDB 10.3 to MariaDB 10.4

### How to Upgrade

For Windows, see [Upgrading MariaDB on Windows](/docs/server/server-management/install-and-upgrade-mariadb/upgrading/platform-specific-upgrade-guides/upgrading-mariadb-on-windows.md) instead.

For MariaDB Galera Cluster, see [Upgrading from MariaDB 10.3 to MariaDB 10.4 with Galera Cluster](/docs/galera-cluster/galera-management/upgrading-galera-cluster/upgrading-from-mariadb-10-3-to-mariadb-10-4-with-galera-cluster.md) instead.

Before you upgrade, it would be best to take a backup of your database. This is always a good idea to do before an upgrade. We would recommend [mariadb-backup](https://github.com/mariadb-corporation/mariadb-docs/blob/main/server/server-usage/backing-up-and-restoring-databases/mariadb-backup/README.md).

The suggested upgrade procedure is:

1. Modify the repository configuration, so the system's package manager installs [MariaDB 10.4](/docs/release-notes/community-server/old-releases/10.4/what-is-mariadb-104.md). For example,

* On Debian, Ubuntu, and other similar Linux distributions, see [Updating the MariaDB APT repository to a New Major Release](/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/installing-mariadb-deb-files.md#updating-the-mariadb-apt-repository-to-a-new-major-release) for more information.
* On RHEL, CentOS, Fedora, and other similar Linux distributions, see [Updating the MariaDB YUM repository to a New Major Release](/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/yum.md#updating-the-mariadb-yum-repository-to-a-new-major-release) for more information.
* On SLES, OpenSUSE, and other similar Linux distributions, see [Updating the MariaDB ZYpp repository to a New Major Release](/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/installing-mariadb-with-zypper.md#updating-the-mariadb-zypp-repository-to-a-new-major-release) for more information.

1. [Stop MariaDB](/docs/server/server-management/starting-and-stopping-mariadb/starting-and-stopping-mariadb-automatically.md).
2. Uninstall the old version of MariaDB.

* On Debian, Ubuntu, and other similar Linux distributions, execute the following:`sudo apt-get remove mariadb-server`
* On RHEL, CentOS, Fedora, and other similar Linux distributions, execute the following:`sudo yum remove MariaDB-server`
* On SLES, OpenSUSE, and other similar Linux distributions, execute the following:`sudo zypper remove MariaDB-server`

1. Install the new version of MariaDB.

* On Debian, Ubuntu, and other similar Linux distributions, see [Installing MariaDB Packages with APT](/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/installing-mariadb-deb-files.md#installing-mariadb-packages-with-apt) for more information.
* On RHEL, CentOS, Fedora, and other similar Linux distributions, see [Installing MariaDB Packages with YUM](/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/yum.md#installing-mariadb-packages-with-yum) for more information.
* On SLES, OpenSUSE, and other similar Linux distributions, see [Installing MariaDB Packages with ZYpp](/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/installing-mariadb-with-zypper.md#installing-mariadb-packages-with-zypp) for more information.

1. Make any desired changes to configuration options in [option files](/docs/server/server-management/install-and-upgrade-mariadb/configuring-mariadb/configuring-mariadb-with-option-files.md), such as `my.cnf`. This includes removing any options that are no longer supported.
2. [Start MariaDB](/docs/server/server-management/starting-and-stopping-mariadb/starting-and-stopping-mariadb-automatically.md).
3. Run [mysql\_upgrade](/docs/server/clients-and-utilities/legacy-clients-and-utilities/mysql_upgrade.md).

* `mysql_upgrade` does two things:
  1. Ensures that the system tables in the [mysql database](/docs/server/reference/system-tables/the-mysql-database-tables.md) are fully compatible with the new version.
  2. Does a very quick check of all tables and marks them as compatible with the new version of MariaDB .

### Incompatible Changes Between 10.3 and 10.4

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

#### Options That Have Changed Default Values

| Option                                                                                                                                                                  | Old default value | New default value                             |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | --------------------------------------------- |
| [slave\_transaction\_retry\_errors](/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables.md#slave_transaction_retry_errors) | 1213,1205         | 1158,1159,1160,1161,1205,1213,1429,2013,12701 |
| [wsrep\_debug](/docs/galera-cluster/reference/galera-cluster-system-variables.md#wsrep_debug)                                                                           | OFF               | NONE                                          |
| [wsrep\_load\_data\_splitting](/docs/galera-cluster/reference/galera-cluster-system-variables.md#wsrep_load_data_splitting)                                             | ON                | OFF                                           |

#### Options That Have Been Removed or Renamed

The following options should be removed or renamed if you use them in your [option files](/docs/server/server-management/install-and-upgrade-mariadb/configuring-mariadb/configuring-mariadb-with-option-files.md):

| Option | Reason |
| ------ | ------ |
|        |        |

#### Authentication and TLS

* See [Authentication from MariaDB 10.4](/docs/server/security/user-account-management/authentication-from-mariadb-10-4.md) for an overview of the changes.
* The [unix\_socket authentication plugin](/docs/server/reference/plugins/authentication-plugins/authentication-plugin-unix-socket.md) is now default on Unix-like systems.
* TLSv1.0 is disabled by default in [MariaDB 10.4](/docs/release-notes/community-server/old-releases/10.4/what-is-mariadb-104.md). See [tls\_version](/docs/server/security/encryption/data-in-transit-encryption/ssltls-system-variables.md#tls_version) and [TLS Protocol Versions](/docs/server/security/encryption/data-in-transit-encryption/secure-connections-overview.md#tls-protocol-versions).

### Major New Features To Consider

You might consider using the following major new features in [MariaDB 10.4](/docs/release-notes/community-server/old-releases/10.4/what-is-mariadb-104.md):

* [Galera](/docs/galera-cluster/readme/mariadb-galera-cluster-usage-guide.md) has been upgraded from [Galera](https://mariadb.com/docs/galera-cluster/) 3 to [Galera](https://mariadb.com/docs/galera-cluster/) 4.
* [System-versioning](/docs/server/reference/sql-structure/temporal-tables/system-versioned-tables.md) extended with support for [application-time periods](/docs/server/reference/sql-structure/temporal-tables/system-versioned-tables.md).
* [User password expiry](/docs/server/security/user-account-management/user-password-expiry.md)
* [Account Locking](/docs/server/security/user-account-management/account-locking.md)
* See also [System Variables Added in MariaDB 10.4](/docs/server/ha-and-performance/optimization-and-tuning/system-variables/system-and-status-variables-added-by-major-release/system-and-status-variables-added-by-major-unmaintained-release/system-variables-added-in-mariadb-10-4.md).

### See Also

* [The features in MariaDB 10.4](/docs/release-notes/community-server/old-releases/10.4/what-is-mariadb-104.md)
* [Upgrading from MariaDB 10.3 to MariaDB 10.4 with Galera Cluster](/docs/galera-cluster/galera-management/upgrading-galera-cluster/upgrading-from-mariadb-10-3-to-mariadb-10-4-with-galera-cluster.md)
* [Upgrading from MariaDB 10.2 to MariaDB 10.3](/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-to-unmaintained-mariadb-releases/upgrading-from-mariadb-102-to-mariadb-103.md)
* [Upgrading from MariaDB 10.1 to MariaDB 10.2](/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-to-unmaintained-mariadb-releases/upgrading-from-mariadb-101-to-mariadb-102.md)
* [Upgrading from MariaDB 10.0 to MariaDB 10.1](/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-to-unmaintained-mariadb-releases/upgrading-from-mariadb-100-to-mariadb-101.md)

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
