MariaDB, a fork of MySQL is one of the most popular open-source SQL (Structured Query Language) relational databases management systems, made by the original developers of MySQL. It is designed for speed, reliability, and ease of use.
It is the default MySQL type database system in the standard repositories of most if not all major Linux distributions including RHEL (RedHat Enterprise Linux) and Fedora Linux. It also works on Windows and macOS, and many other operating systems. It is used as a replacement for MySQL database system in the LAMP (Linux + Apache + MariaDB + PHP) and LEMP (Linux + Engine-X + MariaDB + PHP) stack.
It’s development started due to concerns that arose when MySQL was acquired by Oracle Corporation in 2009. Now, the developers and maintainers of MariaDB do monthly merges with the MySQL code base to ensure that MariaDB has any relevant bug fixes added to MySQL.
MariaDB server is available under the GPL license, version 2, and its client libraries for C, Java, and ODBC are distributed under the LGPL license, version 2.1 or higher. It is offered in two different editions.
The first is the MariaDB Community Server which you can download, use, and modify for free. The second edition is the MariaDB Enterprise Server intended to replace proprietary databases and adopt open source in the enterprise.
How Does MariaDB Work?
Just like MySQL, MariaDB also uses a client/server model with a server program that files requests from client programs. As is typical of client/server computer systems, the server and the client programs can be on different hosts.
Key Features of MariaDB
MariaDB is highly compatible with MySQL as every MariaDB version works as a “drop-in replacement” for the equivalent MySQL version, however, with a couple of limitations.
If you are migrating to MariaDB, its data files are generally binary compatible with those from the equivalent MySQL version, and also MariaDB’s client protocol is binary compatible with MySQL’s client protocol.
- It supports many different SQL statements, structure, and rules, functions and procedures, user-defined functions (useful for extending MariaDB), server variables, and SQL modes, partitioning of tables, database backup, and restoration, server monitoring and logs. It also ships with several plugins such as the MariaDB audit plugin, and more.
- MariaDB comes with many new options, features, and extensions, storage engines, as well as bug fixes that are not in MySQL. Some of the new features in MariaDB are advanced clustering with Galera Cluster 4, several compatibility features with Oracle Database, and Temporal Data Tables (which allows you to query the data as it stood at any point in the past), and so much more.
- The same security features in MySQL exist in MariaDB. Additionally, you should consider best practices to secure your database server. Also, securing your database should start right at the network and server level.
It is important to understand that although MariaDB remains compatible with MySQL, it is truly open-source (and is developed by the community in true open-source spirit), it doesn’t have any closed source modules like the ones that exist in MySQL Enterprise Edition.
The MariaDB documentation will help you to fully understand the differences between MySQL and MariaDB.
MariaDB Client and Tools
For both MariaDB and MySQL, all client APIs and structs are identical, all ports and sockets are generally the same, and all MySQL connectors for programming languages such as Python, Perl, PHP, Ruby, Java, and MySQL C connector, etc work unchanged under MariaDB.
Who is Using MariaDB?
Some of companies using MariaDB include RedHat, Ubuntu, Google, Wikipedia, Tumblr, Amazon Web Services, SUSE Linux, and more.
Here are some useful articles about MariaDB:
- Useful MySQL/MariaDB Performance Tuning and Optimization Tips
- How to Change Root Password of MySQL or MariaDB in Linux
- How to Change Default MySQL/MariaDB Port in Linux
- How to Change a Default MySQL/MariaDB Data Directory in Linux
- 4 Useful Commandline Tools to Monitor MySQL Performance in Linux