We recently covered Upgrading your Galera Cluster from MySQL 5.7 to MySQL 8.0. We’ve also had questions on how the upgrade path from our usual Galera Cluster “community” edition to the Galera Cluster Enterprise Edition (EE), which includes many new features, like XA transaction support, arm64 support or GCache encryption.
First off, let’s start by installing a Galera Cluster on CentOS 7. The reason we have picked this distribution? Let’s edit the /etc/yum.repos.d/galera.repo and add:
[galera4]
name = Galera
baseurl = https://releases.galeracluster.com/galera-4/centos/7/x86_64
gpgkey = https://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpgcheck = 1
[mysql-wsrep8]
name = MySQL-wsrep
baseurl = https://releases.galeracluster.com/mysql-wsrep-8.0/centos/7/x86_64
gpgkey = https://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpgcheck = 1
Then you just execute: yum -y install galera-4 mysql-wsrep-8.0.
Don’t forget to turn off SELinux, look for the temporary password, and fill up your my.cnf.
Upon logging in, we see:
Server version: 8.0.30 MySQL Community Server - GPL
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.30 |
+-----------+
1 row in set (0.00 sec)
Now, let’s upgrade the cluster node by node. Execute systemctl stop mysqld. Consider getting yourself an Galera Cluster Enterprise Edition (EE) subscription, so you will be given a new repository configuration. Replace the repository configuration in your /etc/yum.repos.d/galera.repo and this is the best way forward. There is no reason to be removing packages manually, no mucking around with yum, nothing – it is quite simply plug & play.
When the install is started, don’t forget to bootstrap the first node. Sadly, the server version still doesn’t say Enterprise Server, but it is ok:
Server version: 8.0.30 MySQL Community Server - GPL
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.30 |
+-----------+
1 row in set (0.00 sec)
Don’t forget to read up more on the Galera Cluster Enterprise Edition (EE) offering.