= Mariadb Server = What we really want to set up is a galera cluster. We will use 3 systems for this. * 192.168.1.50 mariadb (virtual IP) * 192.168.1.51 mariadb01 * 192.168.1.52 mariadb02 * 192.168.1.53 mariadb03 == Software == {{{ apt-get install mariadb-server rsync }}} == Configuration == Set the mariadb root password. {{{ mysql_secure_installation }}} Stop mariadb on all nodes. {{{ service mariadb stop }}} Configure mariadb to listen on all interfaces by commenting in `/etc/mysql/mariadb.conf.d/50-server.cnf`. {{{ #bind-address = 127.0.0.1 }}} Add the configuration for galera to `/etc/mysql/conf.d/galera.cnf`. Replace names so they fit the current node. For some reason this has to contain the IP-addresses of the hosts instead of the hostnames. {{{ [galera] wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_address=gcomm://mariadb01,mariadb02,mariadb03 wsrep_node_address=192.168.1.51 wsrep_node_name=mariadb01.kallenberg.dk binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 wsrep_cluster_name="mariadb_galera" wsrep_sst_method=rsync bind-address=0.0.0.0 }}} On the first node the cluster is started. {{{ galera_new_cluster }}} On additional nodes the service is started. {{{ service mariadb start }}} == Health Checks == To enable HA-proxy to be able to perform health checks, we have to create a haproxy user on the galera cluster. Requests can come from both haproxy01 and haproxy02. {{{ create user 'haproxy'@'192.168.1.45'; create user 'haproxy'@'192.168.1.46'; }}} == Checkmk Checks == To enable checkmk monitoring, we have to create a checkmk user on the galera cluster. {{{ create user 'checkmk' identified by 'checkmkpassword'; }}} == References == * https://blog.cloudandheat.com/index.php/en/2016/09/09/tutorial-simple-mariadb-galera-cluster-with-haproxy-load-balancing/ * https://linuxresolved.com/troubleshooting-galera-cluster-wont/