MySQL Group Replication: Difference between revisions
Line 55: | Line 55: | ||
| 4 || Container 4 || db4 || 10.0.3.26 || mysql server 8.0 | | 4 || Container 4 || db4 || 10.0.3.26 || mysql server 8.0 | ||
|- | |- | ||
| 5 || Container 5 || web1 || 10.0.3.159 || mysql-client, apache2, php7.4 | | 5 || Container 5 || web1 || 10.0.3.159 || mysql-client, apache2, php7.4, wordpress, mysqlrouter | ||
|} | |} | ||
Wordpress will be setup on web1 container and mysqlrouter will also be placed on the same application server. Wordpress will connect to the mysqlrouter like a local mysql db instance. Mysqlrouter will route it to the necessary mysql server in the cluster. | |||
=Preparing MySQL Servers= | =Preparing MySQL Servers= |
Revision as of 07:04, 9 June 2020
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.
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.26 | mysql server 8.0 |
5 | Container 5 | web1 | 10.0.3.159 | mysql-client, apache2, php7.4, wordpress, mysqlrouter |
Wordpress will be setup on web1 container and mysqlrouter will also be placed on the same application server. Wordpress will connect to the mysqlrouter like a local mysql db instance. Mysqlrouter will route it to the necessary mysql server in the cluster.