Install and run MariaDB Galera cluster
Galera is a part of MariaDB and enables active/active/active replikation of databases between servers. While it necessarily dont provide any performance gains, it instead enabled a HA for the databases.
This guide assumes that you run Debian 10, which comes with MariaDB 10.3
Install MariaDB 10.3
apt-get update
apt-get install mariadb-server galera
Configuration
It is always STRONGLY recommended to run an odd number of nodes, and atleast three nodes. This is to avoid split-brain and alot of headache and frustration in the future. Please, just set up three nodes and dont bother with a 2 node cluster.
Sure, more servers = the slower the writes will be. So it is recommended to go with atleast 3 nodes, and maximum
Galera configuration
In order to create our galera-cluster, we have to create the following file:
/etc/mysql/conf.d/galera.cnf
, add the following content. Just be sure that you edit it to fit your needs.
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="galera1"
wsrep_cluster_address=gcomm://192.168.2.11,192.168.2.12,192.168.2.13
wsrep_sst_method=rsync
wsrep_node_address=192.168.2.11
You might want to edit the “listen” address for the MariaDB installation, it is usually found in /etc/mysql/mariadb.cnf
.
Configure the other servers accordingly, and execute systemctl restart mariadb-server
on all nodes. You might want to execute galera_new_cluster
on one of the nodes and restart all the nodes again.
Now, you can try to create a database on one node:
create database testdb
And you should be able to see it from the other nodes:
show databases;