MySQL Group Replication
LXC Host Details |
hostname: infrabase1 Network: 10.1.65.0/24 IP Address : 10.1.65.9 Subnet Mask: 255.255.255.0 Gateway: 10.1.65.1 DNS: 8.8.8.8 Reverse Proxy setup: Nginx Server OS: Ubuntu 20.04 Edition: LTS, server sudo user: kedar FTP Client: Filezilla ssh client: terminal, reminna Text editors: sublime-text User PC Details PC type: Desktop OS: Ubuntu Desktop IP Address: 10.1.65.173 sudo user:kedar LXC Containers - db1 (MySQL8.0) - db2 (MySQL8.0) - db3 (MySQL8.0) - db4 (MySQL8.0) - web1 (MySQL Router+Apache) |
Introduction
This article explains how to create a MySQL8.0 HA cluster using group replication and MySQL router. It is important to note that I am using an Ubuntu 20.04 LTS server edition as the LXC host OS and have created 4 Ubuntu 20.04 containers in it and installed MySQL 8.0 from the repositories. The containers have private IPs and they are not reachable on public network. A reverse proxy is setup on the LXC host server so that application setup on the containers are accessible on port 443 or port 80. It can be found here - here.
Basic preparation
Container details are mentioned below. Host entries have been made into respective servers so that the servers can reach every other server using a hostname instead of an IP.
# | Container | Hostname | IP Address | Software installed |
---|---|---|---|---|
1 | Container 1 | db1 | 10.0.3.202 | mysql server 8.0 |
2 | Container 2 | db2 | 10.0.3.246 | mysql server 8.0 |
3 | Container 3 | db3 | 10.0.3.175 | mysql server 8.0 |
4 | Container 4 | db4 | 10.0.3.100 | mysql server 8.0 |
5 | Container 5 | web1 | 10.0.3.33 | mysql-client, apache2, php7.4 |