MariaDB in brief
MariaDB Server is a general purpose open source relational database management system. It’s one of the most popular database servers in the world, with notable users including Wikipedia, WordPress.com and Google. MariaDB Server is released under the GPLv2 open source licence and is guaranteed to remain open source.
It can be used for high-availability transaction data, analytics, as an embedded server, and a wide range of tooling and applications support MariaDB Server.
When MariaDB Server’s predecessor, MySQL, was bought by Oracle in 2009, MySQL founder Michael “Monty” Widenius forked the project due to concerns about Oracle’s stewardship, naming the new project MariaDB. MySQL was named after his first daughter, My, while MariaDB is named after his second daughter, Maria.
Most of the original developers joined the new project and MariaDB Server has continued to develop rapidly since then.
Until MariaDB 5.5, MariaDB Server followed the MySQL version numbering schema, aiming for drop-in compatibility with the same major version of MySQL.
In 2012, to reflect the presence of a growing number of features that were not available in MySQL, MariaDB Server’s version numbering diverged, and MariaDB released 10.0, while MySQL released 5.6. The current long-term support release is MariaDB 10.6, while the latest stable short-term support release is MariaDB 10.9.
Compatibility with MySQL, Postgres, MongoDB, and Oracle
MariaDB Server still retains high levels of compatibility with MySQL, and most popular applications that use MySQL will work seamlessly with MariaDB. The earlier term drop-in replacement is no longer used, because the goal of MariaDB has diverged from MySQL’s, and MariaDB Server has many new features.
MariaDB Server has a strong emphasis on not breaking backwards compatibility for its users. Upgrades from old MySQL versions to even the newest MariaDB versions are supported with an inplace upgrade.
MariaDB Server provides an Oracle syntax compatibility mode for running Oracle Database applications without change.
The MariaDB Knowledge Base contains a section on migrating from SQL Server to MariaDB.
PostgreSQL, in contrast to MariaDB, began as a research project, focusing on features, rather than performance and stability. MariaDB’s predecessor MySQL followed a pragmatic approach, less functionality, but with a focus on performance, stability and ease of use. Since then, the differences between the two have been reduced, with MariaDB focusing on more fully implementing the ANSI SQL standard, and PostgreSQL on improving its performance.
For MongoDB users, our JSON features may be of interest:
- There are a large number of JSON functions, for handling unstructured data.
- The JSON data type, an alias for LONGTEXT with a constraint to ensure it’s valid JSON
- The CONNECT Storage Engine has a JSON Table Type including powerful functionality for handling JSON data.
Open architecture: storage engines
MariaDB Server’s model allows one to choose a particular Storage Engine best suited to meet various needs. Some of these include:
- InnoDB is a good general transaction storage engine, and the best choice in most cases.
- Aria, MariaDB’s more modern improvement on MyISAM, has a small footprint and allows for easy tables copying between systems.
- MyISAM has a small footprint and allows for easy tables copying between systems. MyISAM is MySQL’s oldest storage engine. There is usually little reason to use it except for legacy purposes. Aria is MariaDB’s more modern improvement.
MariaDB Server can split database loads on several servers and optimise for scaling. There is also Galera, a synchronous multi-master cluster.
- ColumnStore utilises a massively parallel distributed data architecture and is designed for big data scaling to process petabytes of data.
- Spider uses partitioning to provide data sharding through multiple servers.
Compression / archive
- MyRocks enables greater compression than InnoDB, as well as less write amplification giving better endurance of flash storage and improving overall throughput.
Connecting to other data sources
When you want to use data not stored in a MariaDB Server database.
- CONNECT allows access to different kinds of text files and remote resources as if they were regular MariaDB tables.
Storage engines optimised for search.
- Mroonga provides fast CJK-ready full text searching using column store.
Other specialised storage engines
- S3 Storage Engine is a read-only storage engine that archive its data in Amazon S3 (or any S3 API compatible solution).
- OQGRAPH allows you to handle hierarchies (tree structures) and complex graphs (nodes having many connections in several directions).
Open architecture: plugins
MariaDB Server supports the use of plugins, software components that may be added to the core software without having to rebuild the MariaDB server from source code. Therefore, plugins can be loaded at start-up, or loaded and unloaded while the server is running without interruption. Plugins are commonly used for adding desired storage engines, additional security requirements, and logging special information about the server.
Some additional plugins include
- Performance Schema, a feature for monitoring the performance of your MariaDB server.
- MariaDB Audit plugin, used to log server activity, a requirement to be in compliance with some auditing regulations.
- ed25519 authentication plugin, which uses the Elliptic Curve Digital Signature Algorithm (ECDSA) to securely store users’ passwords and to authenticate users, an improvement over the default SHA-1 based authentication.
- Cracklib password check plugin, for checking the strength of new passwords,
Open development model
The MariaDB Server code base is maintained on GitHub.
MariaDB has a public issue tracker at jira.mariadb.org. Users can submit, vote for and comment on planned features and bugs.
MariaDB Server is available on most Linux distros, in some cases having replaced MySQL as the default offering.
It integrates well with most development languages, frameworks and cloud tools, and there are numerous connectors to assist,, some developed by the MariaDB Corporation, others maintained by other members of the community.
Getting MariaDB Server
Binaries and the source code can be downloaded at mariadb.org/download. MariaDB Server is also available through the repos in most distributions, and there is a Docker Library
The MariaDB Foundation, a non-profit organisation tasked with ensuring Openness, Adoption, and Continuity for MariaDB Server, was also formed in 2012.
The MariaDB Foundation:
- ensures the MariaDB Server code base remains open for usage and contributions on technical merits.
- strives to increase adoption by users and across use cases, platforms and means of deployment.
- provides continuity to the MariaDB Server ecosystem, independent of any commercial entities.
The MariaDB Foundation is funded entirely by donations.
MariaDB Foundation sponsors have included MariaDB Corporation, Acronis, Alibaba Cloud, Intel, Microsoft, ServiceNow, Schaffhausen Institute of Technology, Development Bank of Singapore, Visma, IBM, Booking.com, Tencent Cloud and others
The MariaDB Corporation is a commercial entity, a platinum sponsor of the MariaDB Foundation, and employs many of the developers that work on MariaDB Server, as well as related products such as MaxScale, a database proxy, and SkySQL, a managed cloud database-as-a-service.
Relationship to MariaDB Foundation
The Foundation is responsible for MariaDB Server, but the Corporation employs most of the developers that work on MariaDB Server, and therefore has a large input in the roadmap. The Corporation also has representation on the MariaDB Foundation board,
Other software by MariaDB Corporation
MariaDB Corporation also develops other products, some with the MariaDB brand. These include:
- MariaDB MaxScale, a database proxy that extends the high availability, scalability, and security of MariaDB Server while at the same time simplifying application development by decoupling it from underlying database infrastructure.
- MariaDB SkySQL, their cloud database platform
- MariaDB Enterprise Server, a customised version of MariaDB Server
- MariaDB Xpand, a distributed database server with high availability, fault tolerance, and write scaling
- Connectors, such as MariaDB Connector/C, MariaDB Connector/J (Java) and MariaDB Connector/ODBC
- Download MariaDB
- Zulip Chat
- Contributor agreement
- MariaDB Server documentation
- Docker Library Hub
MariaDB Server is available on all major Linux distros. You can also use the Download site to set up and use one of the MariaDB Foundation’s repository, or to download it directly: https://mariadb.org/download. Learn more about setting up and using MariaDB in the Documentation: https://mariadb.com/kb/. And to get in touch with our active community, you can use our Zulip instance, https://mariadb.zulipchat.com/, or the mailing lists, https://mariadb.com/kb/en/where-are-other-users-and-developers-of-mariadb/