...

MariaDB 12.0: Features, Update Risks, and Hosting Strategy

MariaDB 12.0 enhances the database server in areas such as query planning, auditing, replication, and encryption. For hosting platforms, however, it is not the version number that matters, but rather the specifically verified target value: MariaDB 12.0.2 is documented as a stable GA release, while the series follows the rolling release model. Before updating MariaDB, the package status, applications, configuration, recovery, and operational model must all be evaluated together.

Classifying MariaDB 12.0 Correctly

The term „MariaDB 12“ does not refer to a single, permanently maintained product release. For specific technical information, see the rolling series MariaDB 12.0 That is what is meant. Within this series, the releases represent different levels of maturity: 12.0.0 was released on March 26, 2025, as a preview, 12.0.1 on June 5, 2025, as a release candidate, and 12.0.2 on August 7, 2025, as a stable GA release.

Preview and Release Candidate versions are intended for testing and should not be equated with a stable platform release. The fact that 12.0.2 is documented as Stable or GA, on the other hand, accurately describes the maturity status of this specific release. It does not follow from this that every installation should be upgraded immediately, nor that subsequent releases will automatically have the same features, packages, or operational limits.

Later branches such as 12.1, 12.2, or 12.3 must also be considered separately. Features, bug fixes, or changed default values from such series do not constitute evidence of MariaDB 12.0. The same applies to development branches: An announcement or documentation there does not replace a statement regarding the published community server version.

Before a rollout, the platform therefore needs to be reconciled again with the package status that is actually planned. In particular, the following must be checked: the available server series, compatible client and add-on packages, support provided by the operating system version in use, and the current release classification. Repository contents and distribution packages may differ from the general product designation.

Distinguishing Between Rolling Release and LTS

For hosting platforms, it is not only the version number that matters, but also the underlying Release Model. MariaDB distinguishes between Innovation Releases and LTS Releases. Innovation Releases introduce new features at short intervals and, once they reach general availability (GA), typically transition to the next rolling series. LTS Releases, on the other hand, are supported for three years after GA, according to the vendor.

A stable GA release therefore only answers the question of whether this specific version has been released as stable. It does not provide a general answer as to how long security fixes will be available, whether a distributor will continue to provide packages, or whether an existing customer base can remain on the series without migrating. These points depend on the contract, the distribution, and the current release overview.

An innovation series may be appropriate if a platform wants to implement a clearly needed feature early on and can test the affected applications, connectors, and operational processes in isolation. To do this, teams must plan to continue along the intended upgrade path in a timely manner. This increases the effort required for approvals, communication, and fallback procedures, particularly for multi-tenant offerings.

A LTS Target Score It is better suited to standardized platforms with many traditional applications, where predictable maintenance windows and long-term software stability are more important than individual new features. This is not a rule against innovation releases: The key factor is whether the benefits of a feature justify the additional testing and the expected transition to the next version.

The selection should therefore take into account, at a minimum, functional requirements, the current package and support status, tested application compatibility, recoverability, and personnel-related operational costs. For a new installation, it is not enough to simply consider „MariaDB 12“ the most up-to-date version. The platform deliberately balances short-term feature utilization with a long-term, standardized database configuration.

Evaluating New Features with Limitations

MariaDB 12.0 Adds Optimizer Hints to more specifically influence execution plans, such as for join orders, range optimization, or specific join algorithms. Extensions also apply to descending-order index components in loose index scans and index condition pushdown. For hosting environments, this is primarily a diagnostic tool for individual problematic queries; it is not a substitute for appropriate indexes, correct join conditions, and up-to-date table statistics.

A hint can limit an undesirable plan, but it may itself have a negative effect as data grows or statistics change. It therefore belongs in a reproducible analysis of the affected application and not as a global setting in the database server. For typical CMS and e-commerce databases, the mere availability of such hints is not a compelling reason to update to MariaDB.

During an audit, the Audit Plugin in 12.0 also logs the host and port of incoming connections, as well as the TLS version used. For access behind proxies, NAT, or load balancers, this can improve forensic tracing. However, the benefit is only realized through centralized, access-protected log collection and defined retention policies; additional log data must fit within capacity and data protection planning.

For encryption, SHA-2 support is available in file_key_management.so and ssl_passphrase Building blocks are ready. Replication environments now have options for temporary tables as well as a variable for handling events with their own server ID. In addition, version 12.0 introduces, among other things, SYS_REFCURSOR, a cursor limit per session, and GIS functions such as validation, simplification, and geohash conversion. These tools are each designed to work only with specific applications and topologies.

MariaDB Server, MaxScale, and Galera remain separate components: MaxScale has its own versions and configurations, and changes related to Galera affect only clusters. Likewise, MySQL compatibility does not imply interchangeability without verification. MariaDB uses its own GTID model and, for example, does not support MySQL's SET PERSIST. New GIS features can benefit MySQL 8-based geodata applications, but they are generally not a reason to upgrade for typical web databases.

Compare Release Status and Features

For platform operation, the specific version within the series is crucial. MariaDB 12.0.0 was a preview, 12.0.1 was a release candidate, and only 12.0.2 is documented as stable or GA. These statuses indicate different levels of maturity; they do not indicate whether the series is suitable for a specific hosting rollout, operating system, or support contract.

Maturity Status of the Documented MariaDB 12.0 Releases
ReleaseDateMaturity StatusOrganizational Classification
12.0.0March 26, 2025PreviewDo not plan for this as a standard platform feature; it is intended for early functional evaluation.
12.0.1June 5, 2025Release CandidateFor limited compatibility testing; not intended as a basis for a broad rollout.
12.0.2August 7, 2025Stable / GAStable, documented status of the 12.0 series; however, check the package, support, and operating system status separately.

New features are especially useful when they address a specific operational problem. Optimizer Hints can, for example, limit an undesirable execution plan for a single complex query. They are no substitute for appropriate indexes, correct join conditions, or up-to-date statistics, and should not be used as a global default for customer applications.

MariaDB 12.0 Features as Targeted Tools in Hosting
FunctionPotential Benefits of HostingPrerequisite or RiskSuitable Application
Optimizer HintsTargeted Narrowing of Problematic Individual QueriesThe plan may have negative consequences if the data set is differentReproducible Reporting Error Following Analysis
Audit by Host, Port, and TLS VersionBetter Tracking of Accesses Behind a Proxy or NATCentralized, secure log collection requiredForensics and Transparent Platform Operations
ssl_passphrase and SHA-2 for file_key_managementSupport password-protected keysNo substitute for rotation, a rights strategy, and a restore planDefined Encryption and Key Management
create_tmp_table_binlog_formatsManaging Temporary Tables More Effectively in Replication ScenariosYou must understand the binlog format and topologyTargeted Testing of Replication Architecture
SYS_REFCURSOR and max_open_cursorsLimit Stored Routines and Open CursorsThe application may fail if the limit is too tightSpecialized Routine Applications
GIS FeaturesExpand Geodata Functions for Suitable ApplicationsOften of no use for CMS and e-commerce databasesThe application processes spatial data

The additional audit fields can capture the host, port, and TLS version used for an incoming connection. The key option ssl_passphrase On the other hand, the advanced GIS or cursor functions do not justify a blanket version upgrade. Their benefits are realized only in applications whose architecture, data model, and security requirements actually necessitate these capabilities.

Carefully Prepare for a MariaDB Update

A MariaDB update in managed or shared hosting begins with an inventory: instances, databases, connectors, plugins, configuration files, replication paths, and affected applications must all be identified. This is followed by a staging environment that replicates production data and configuration only within the permitted security parameters. This allows startup issues and SQL discrepancies to be identified before multiple clients are affected.

Before any limited rollout, a complete backup and a documented recovery procedure are required. It is not enough simply to have backup files; those responsible must verify that a consistent data state usable by applications can be restored from them. They then check logins, write operations, background jobs, and typical customer paths as Application Regression. The specific procedure depends on the security method used and the platform architecture.

Configuration Check and Backup Planning Before a MariaDB Update
AI-generated stock image: Configuration, recovery, and package planning must be completed before the phased rollout.

A fallback plan specifies who decides which data states are authoritative and how applications revert to the previous consistent state in the event of an interruption. This is standard operational practice, not a feature of a specific MariaDB version. Replication, monitoring, and failover must therefore be tested within the respective staging topology, rather than assuming they function correctly based on a successful update of a single instance.

Version-Specific Checks Before Updating to MariaDB 12.0
CheckpointWhy Is This Relevant?Test MethodArea of Responsibility
my.cnf and linked filesRemoved or invalid options may interfere with startupCheck the configuration inventory against the target versionDatabase Operations
Removed variable `big_tables`The variable was removed in MariaDB 12.0Identify occurrences in the main file and configuration fragments and clean them up before the updateDatabase Operations
Removed the variable `large_page_size`The variable was removed in MariaDB 12.0Identify occurrences in all loaded configuration files and evaluate the host configuration separatelyDatabase and Hosting Operations
Removed the variable `storage_engine`The variable was removed in MariaDB 12.0Identify occurrences in the main file and configuration fragments and clean them up before the updateDatabase Operations
Package AssemblyServer, client, shared, and common packages must be compatible for the planned installationCheck the planned package versions and package source before installationPackage and Platform Management

MariaDB 12.0 removes the system variables big_tables, large_page_size and storage_engine. Existing entries must therefore be in my.cnf and all associated configuration fragments must be found and evaluated for the target state. The cleanup must occur before the package update; in the case of large_page_size It is also important to distinguish between the removed MariaDB variable and the operating system's HugePages configuration, which is independent of it.

Package planning also deserves its own step: A repository can contain multiple MariaDB versions, and related server, client, shared, and common packages should be configured to match each other in version. The operating system version and package sources are part of the release. For host-level dependencies, the article on Relevant updates for hosting servers running the Linux 6.x kernel additional context; however, it does not replace the database-specific staging check.

Configure Special Cases Safely

For unstable reporting queries, troubleshooting should begin with execution plans, indexes, join conditions, and table statistics. Only once an undesirable plan has been reproducibly narrowed down can an optimizer hint serve as a targeted solution. The hint is specific to the query in question and should be included in a documented review, because data growth or changes in statistics can alter its effect later on.

Read-only queries are ideal for a risk-free assessment. Run them using an account that has only the necessary access permissions; they do not modify data, permissions, or server configuration. The results identify the database server that is actually connected and help verify assumptions made in deployment documentation.

Code
SELECT VERSION();
SHOW VARIABLES LIKE 'max_open_cursors';
SHOW VARIABLES LIKE 'create_tmp_table_binlog_formats';

In a proxy architecture, SET SESSION AUTHORIZATION not a convenience feature, but an intervention in the security model. Switching sessions requires the privilege SET USER and is not available within transactions, prepared statements, or stored procedures.

Supported versions of MaxScale can use service credentials for the backend connection and then switch to the client's identity. This requires a MariaDB 12 or later backend server and the privilege SET USER required for the service account. However, this capability is not automatically provided by a MariaDB 12.0 backend alone: Before the rollout, the specific combination of MariaDB Server, MaxScale version, and configuration must be verified.

The MaxScale setting use_service_credentials In compatible versions, this setting determines whether MaxScale first logs in to the backend using the credentials stored in the service and then switches to the client identity. The service account must not be granted any administrative privileges beyond those technically necessary. Auditing and a documented emergency shutdown procedure must be compatible with the connection and pooling model.

Replication and Galera topologies require a dedicated test path for failover, rejoin, and recovery. Options for temporary tables or the handling of identical server IDs must not be changed without a thorough understanding of the binlog format, server ID, and return path. Furthermore, Galera optimization does not constitute a general performance guarantee for clusters, as load profiles and network latency remain critical factors.

Anyone evaluating internal tables, temporary structures, or storage engines in this environment should consider the role of each engine separately from the version migration. The article on MariaDB Aria Storage Engine in Hosting classifies such operational issues. However, the decisive factor in the decision to upgrade remains whether the specific application and its operational processes will function reproducibly on the target platform.

Ensuring Session Transition and Audit Security

SET SESSION AUTHORIZATION is a building block for intentionally designed connection architectures, not merely a convenience for administration. The command allows an authorized account to act under the identity of another user within the current session. The prerequisite is the privilege SET USER. This shifts responsibility for login and identity verification, at least in part, from individual customer accounts to a controlled platform component.

This pattern may be useful for a proxy, but MariaDB Server and MaxScale remain separate products with their own versioning. Only MaxScale versions that support the use of service credentials followed by an identity switch can provide this workflow. A MariaDB 12.0 backend does not automatically extend an older or differently configured MaxScale branch with this capability.

In a supported combination, the proxy logs in to the MariaDB server using the service account and then switches to the requested user identity. The setting use_service_credentials requires a MariaDB 12 or later backend server, as well as SET USER for the service account. Before implementation, the specific versions of MariaDB and MaxScale to be used, the configuration, and the intended authentication method must therefore be reviewed together.

The service account is useful because it allows you to Identity changes are critical to security. The Privilege SET USER does not automatically grant it any global administrative privileges; furthermore, it may only be granted the permissions that are technically necessary. When switching sessions, account lockout, password expiration, authentication, and the REQUIRE-SSL check for the target account, among other things, can be bypassed. Furthermore, the switch is not available within transactions, prepared statements, or stored procedures.

For multi-tenant hosting, this means: Customer accounts remain logically separated, and the permitted scope of changes is documented and limited. In addition, the platform requires an emergency shutdown mechanism, such as locking the service account or removing the affected connection path in accordance with a defined incident response procedure. The appropriate measure must be determined in consideration of connection pooling, existing sessions, and the impact on other clients.

Network Access and Auditing as Part of a Secure Database Platform
AI-generated stock image: Proxy access and audit data require a coordinated security and operational model.

In MariaDB 12.0, the Audit plugin adds the host, port, and TLS version used to incoming connections. This information helps better identify access attempts originating from behind NAT, load balancers, or proxies. However, they do not replace a reliable identification if an upstream system modifies source information or only passes its own address to the database server.

It takes effect Auditing First, an operational process must be established: Logs should be collected centrally, protected against unauthorized modification, and managed in accordance with a specified retention period. Access rights for viewing and exporting must be separated, as must responsibility for alerting and investigation. Whether additional log data noticeably affects the capacity or performance of a specific platform cannot be determined from the version alone without measurement.

In the event of a security incident, operators should be able to determine which identity the proxy assigned, through which access point the session was established, and what audit data is available regarding it. Regular, documented checks of system shutdowns and log availability are more important than logging as extensively as possible. In particular, an audit log must not be used as a substitute for a rights management policy, transport encryption, or secure secret management.

Monitor Operation After the Upgrade

After a MariaDB update, an observation phase begins; there is no automatic optimization. First, you need to determine whether the Server Startup fails, an application can no longer establish a connection, or a replication path diverges. These error scenarios have different causes and require separate solutions rather than being addressed with blanket configuration changes.

Startup errors are narrowed down using the server error log and a versioned inventory of the configuration files that were actually loaded. In MariaDB 12.0, for example, big_tables and storage_engine removed. Such entries must not be left unchanged in my.cnf or embedded configuration fragments; the documented variable reference and the startup message indicate which specific setting is affected.

For connectors and plugins, you must record the installed packages, the loaded module versions, and the application's error message. Selecting a repository alone does not guarantee a compatible installation: When using a specific server version, server, client, shared, and common packages must be planned with matching versions. The available names and versions depend on the repository and operating system used.

Application errors are best investigated using a reproducible, as small as possible SQL test case and the corresponding client or connector logs. A read-only assessment can be performed using SELECT VERSION(); begin. The result identifies the responding database server, but does not prove either the compatibility of an ORM or the correct operation of an application configuration.

For replication, the diagnostic file should include the documented replication status, binlog format, server IDs, and events related to failover and rejoin. Temporary tables, the topology, and changes to replication options must be checked separately. A successful local write test is not sufficient to verify consistency and expected behavior across all involved instances.

Server and audit logs, configuration inventory, version queries, and reproducible query tests together provide a traceable chain of errors. It also makes it easier to decide whether a fallback plan needs to be triggered. A higher version number does not necessarily result in a specific performance effect or universal tuning; changes to memory, optimizer, or replication parameters require a specific hypothesis and a verifiable effect.

Strategically Determine the Target Score

The appropriate target version depends on the platform’s purpose and operating model, not on the umbrella term “MariaDB 12.” For traditional CMS, e-commerce, and web application databases, upgrade reliability, clean tenant isolation, and a robust recovery path usually take precedence over individual new SQL features. New GIS functions or routines are not a reason for migration in and of themselves if the applications do not use them.

Complex reporting applications can benefit from optimizer hints when an analysis clearly identifies an undesirable execution plan. Before doing so, you should check indexes, join conditions, data distribution, and statistics. A hint is a specific constraint on an execution plan decision and may become inappropriate following data growth or changes to statistics; it should therefore be included in the application documentation along with the query, rationale, and criteria for revoking it.

Proxy and cluster environments require a separate test path. For a proxy, this specifically involves the service account’s authorization model, session switches, and auditability. For replication or Galera, this includes failover, rejoin, restore, and the behavior of temporary tables. A successful upgrade of a single instance does not prove that these processes function correctly throughout the entire topology.

The Release Strategy must evaluate Innovation Releases and LTS separately. MariaDB describes Innovation Releases as rolling releases that, as a rule, are not continuously maintained with patch versions after GA; the intended path leads to the next rolling series. LTS releases, on the other hand, are maintained for three years after GA. This does not imply a blanket commitment to package or contractual support for a specific hosting environment.

Before making a decision, therefore, the distribution’s package and support landscape, tested application compatibility, a proven restore process, the security model, and ongoing operational costs must all be evaluated together. Despite many shared SQL patterns, MariaDB and MySQL are not interchangeable: MariaDB uses its own GTID model and, for example, does not support MySQL’s SET PERSIST. Migration assumptions based on a MySQL environment must therefore be verified.

For the 12.0 series, 12.0.2 is documented as the stable GA release, while 12.0.0 was a preview and 12.0.1 was a release candidate. This classification describes the maturity status at that time but does not replace a current release decision. Immediately prior to rollout or release, operators must verify the offered package version, operating system support, and current release classification against the manufacturer’s information.

The key factor, therefore, is the specific, tested platform version, along with its dependencies and operating rules. A controlled rollout is justified if compatibility, fallback plans, and responsibilities have been verifiably prepared. If these prerequisites are missing, the name “MariaDB 12” is not a reason to take on risks in shared hosting or in a business-critical database environment.

Sources and Current State of Knowledge

Status of the research:

Date of research: September 30, 2026. This article covers MariaDB Community Server 12.0; 12.0.0 was a preview, 12.0.1 was a release candidate, and 12.0.2 was documented as stable/GA. Package offerings, operating system support, release classification, and contractual support commitments must be re-evaluated immediately prior to a rollout.

https://mariadb.com/docs/release-notes/community-server/old-releases/12.0/what-is-mariadb-120

https://mariadb.com/docs/release-notes/community-server/about/release-model

https://mariadb.com/docs/release-notes/community-server/changelogs/12.0/12.0.2

https://mariadb.com/docs/release-notes/community-server/about/compatibility-and-differences/incompatibilities-and-feature-differences-between-mariadb-rolling-and-mysql

https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/yum

https://mariadb.com/docs/server/reference/sql-statements/account-management-sql-statements/set-session-authorization

https://mariadb.com/docs/maxscale/reference/maxscale-servers

https://mariadb.com/docs/server/server-management/variables-and-modes/server-system-variables

Current articles

An administrator is checking a database upgrade process in the hosting operations room
Databases

MariaDB 12.0: Features, Update Risks, and Hosting Strategy

MariaDB 12.0 introduces new optimizer, audit, replication, and security features. For hosting platforms, however, a controlled update path is of paramount importance: the release model, package version, configuration, applications, and fallback must all be compatible.

An administrator is planning a Redis update in front of server racks in a hosting operations room.
Databases

Redis 8: New Features and Upgrade Decisions for Hosting Providers

Redis 8 integrates previous stack components and expands the range of features for search, time series, and vectors. For hosting providers, however, the target version, ACLs, resource planning, the upgrade process, and license selection are equally important.