본문 바로가기
MySQL/MySQL Installation

Docker MySQL Replication 구성(이중화)

by 의미와의미 2024. 12. 9.
반응형

Docker MySQL Replication(MHA) 구성(이중화)

OS 기본환경

 

OS Red Hat Enterprise Linux Server release 7.8 (Maipo)
CPU 8
Memory 32GB
IP eth0 :10.231.248.21
Docker0 :172.17.0.1

 

Docker 환경

 

Docker Name Docker IP Service Version 비고
db001 172.18.0.2 percona:5.7.30 Master DB
db002 172.18.0.3 percona:5.7.30 Slave DB
db003 172.18.0.4 percona:5.7.30 Slave DB
orchestrator 172.18.0.5 None HA
proxysql 172.18.0.6 Server version: 5.5.30 (ProxySQL Admin Module) Proxy SQL

Docker 사전구성

1.    Docker 컨테이너 설치

 

# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
 
# sudo yum install docker-ce
 
Loaded plugins: search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 3:25.0.3-1.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.74 for package: 3:docker-ce-25.0.3-1.el7.x86_64
--> Processing Dependency: containerd.io >= 1.6.24 for package: 3:docker-ce-25.0.3-1.el7.x86_64
--> Processing Dependency: docker-ce-cli for package: 3:docker-ce-25.0.3-1.el7.x86_64
--> Processing Dependency: docker-ce-rootless-extras for package: 3:docker-ce-25.0.3-1.el7.x86_64
--> Running transaction check
---> Package container-selinux.noarch 2:2.119.2-1.911c772.el7_8 will be installed
---> Package containerd.io.x86_64 0:1.6.28-3.1.el7 will be installed
---> Package docker-ce-cli.x86_64 1:25.0.3-1.el7 will be installed
--> Processing Dependency: docker-buildx-plugin for package: 1:docker-ce-cli-25.0.3-1.el7.x86_64
--> Processing Dependency: docker-compose-plugin for package: 1:docker-ce-cli-25.0.3-1.el7.x86_64
---> Package docker-ce-rootless-extras.x86_64 0:25.0.3-1.el7 will be installed
--> Processing Dependency: fuse-overlayfs >= 0.7 for package: docker-ce-rootless-extras-25.0.3-1.el7.x86_64
--> Processing Dependency: slirp4netns >= 0.4 for package: docker-ce-rootless-extras-25.0.3-1.el7.x86_64
--> Running transaction check
---> Package docker-buildx-plugin.x86_64 0:0.12.1-1.el7 will be installed
---> Package docker-compose-plugin.x86_64 0:2.24.5-1.el7 will be installed
---> Package fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 will be installed
--> Processing Dependency: libfuse3.so.3(FUSE_3.0)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
--> Processing Dependency: libfuse3.so.3(FUSE_3.2)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
--> Processing Dependency: libfuse3.so.3()(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
---> Package slirp4netns.x86_64 0:0.4.3-4.el7_8 will be installed
--> Running transaction check
---> Package fuse3-libs.x86_64 0:3.6.1-4.el7 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
======================================================================================================================================================================================================================
 Package                                                 Arch                                 Version                                                   Repository                                               Size
======================================================================================================================================================================================================================
Installing:
 docker-ce                                               x86_64                               3:25.0.3-1.el7                                            docker-ce-stable                                         26 M
Installing for dependencies:
 container-selinux                                       noarch                               2:2.119.2-1.911c772.el7_8                                 rhel-7-server-extras-rpms                                40 k
 containerd.io                                           x86_64                               1.6.28-3.1.el7                                            docker-ce-stable                                         35 M
 docker-buildx-plugin                                    x86_64                               0.12.1-1.el7                                              docker-ce-stable                                         13 M
 docker-ce-cli                                           x86_64                               1:25.0.3-1.el7                                            docker-ce-stable                                         14 M
 docker-ce-rootless-extras                               x86_64                               25.0.3-1.el7                                              docker-ce-stable                                        9.4 M
 docker-compose-plugin                                   x86_64                               2.24.5-1.el7                                              docker-ce-stable                                         13 M
 fuse-overlayfs                                          x86_64                               0.7.2-6.el7_8                                             rhel-7-server-extras-rpms                                55 k
 fuse3-libs                                              x86_64                               3.6.1-4.el7                                               rhel-7-server-extras-rpms                                82 k
 slirp4netns                                             x86_64                               0.4.3-4.el7_8                                             rhel-7-server-extras-rpms                                82 k
 
Transaction Summary
======================================================================================================================================================================================================================
Install  1 Package (+9 Dependent packages)
 
Total download size: 110 M
Installed size: 388 M
Is this ok [y/d/N]:
 
 
Downloading packages:
(1/10): container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm                                                                                                                                   |  40 kB  00:00:00
warning: /var/cache/yum/x86_64/7Server/docker-ce-stable/packages/docker-buildx-plugin-0.12.1-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY               ] 6.2 MB/s |  23 MB  00:00:14 ETA
Public key for docker-buildx-plugin-0.12.1-1.el7.x86_64.rpm is not installed
(2/10): docker-buildx-plugin-0.12.1-1.el7.x86_64.rpm                                                                                                                                           |  13 MB  00:00:02
(3/10): docker-ce-25.0.3-1.el7.x86_64.rpm                                                                                                                                                      |  26 MB  00:00:03
(4/10): containerd.io-1.6.28-3.1.el7.x86_64.rpm                                                                                                                                                |  35 MB  00:00:07
(5/10): docker-ce-cli-25.0.3-1.el7.x86_64.rpm                                                                                                                                                  |  14 MB  00:00:02
(6/10): fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm                                                                                                                                                |  55 kB  00:00:00
(7/10): docker-compose-plugin-2.24.5-1.el7.x86_64.rpm                                                                                                                                          |  13 MB  00:00:01
(8/10): docker-ce-rootless-extras-25.0.3-1.el7.x86_64.rpm                                                                                                                                      | 9.4 MB  00:00:02
(9/10): fuse3-libs-3.6.1-4.el7.x86_64.rpm                                                                                                                                                      |  82 kB  00:00:03
(10/10): slirp4netns-0.4.3-4.el7_8.x86_64.rpm                                                                                                                                                  |  82 kB  00:00:03
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                 8.9 MB/s | 110 MB  00:00:12
Retrieving key from https://download.docker.com/linux/centos/gpg
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <docker@docker.com>"
 Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                                                                                                                1/10
setsebool:  SELinux is disabled.
  Installing : containerd.io-1.6.28-3.1.el7.x86_64                                                                                                                                                               2/10
  Installing : slirp4netns-0.4.3-4.el7_8.x86_64                                                                                                                                                                  3/10
  Installing : docker-compose-plugin-2.24.5-1.el7.x86_64                                                                                                                                                         4/10
  Installing : fuse3-libs-3.6.1-4.el7.x86_64                                                                                                                                                                     5/10
  Installing : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                                                                                                                               6/10
  Installing : docker-buildx-plugin-0.12.1-1.el7.x86_64                                                                                                                                                          7/10
  Installing : 1:docker-ce-cli-25.0.3-1.el7.x86_64                                                                                                                                                               8/10
  Installing : docker-ce-rootless-extras-25.0.3-1.el7.x86_64                                                                                                                                                     9/10
  Installing : 3:docker-ce-25.0.3-1.el7.x86_64                                                                                                                                                                  10/10
  Verifying  : 3:docker-ce-25.0.3-1.el7.x86_64                                                                                                                                                                   1/10
  Verifying  : docker-buildx-plugin-0.12.1-1.el7.x86_64                                                                                                                                                          2/10
  Verifying  : fuse3-libs-3.6.1-4.el7.x86_64                                                                                                                                                                     3/10
  Verifying  : docker-compose-plugin-2.24.5-1.el7.x86_64                                                                                                                                                         4/10
  Verifying  : containerd.io-1.6.28-3.1.el7.x86_64                                                                                                                                                               5/10
  Verifying  : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                                                                                                                               6/10
  Verifying  : slirp4netns-0.4.3-4.el7_8.x86_64                                                                                                                                                                  7/10
  Verifying  : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                                                                                                                8/10
  Verifying  : 1:docker-ce-cli-25.0.3-1.el7.x86_64                                                                                                                                                               9/10
  Verifying  : docker-ce-rootless-extras-25.0.3-1.el7.x86_64                                                                                                                                                    10/10
 
Installed:
  docker-ce.x86_64 3:25.0.3-1.el7
 
Dependency Installed:
  container-selinux.noarch 2:2.119.2-1.911c772.el7_8          containerd.io.x86_64 0:1.6.28-3.1.el7                docker-buildx-plugin.x86_64 0:0.12.1-1.el7          docker-ce-cli.x86_64 1:25.0.3-1.el7
  docker-ce-rootless-extras.x86_64 0:25.0.3-1.el7             docker-compose-plugin.x86_64 0:2.24.5-1.el7          fuse-overlayfs.x86_64 0:0.7.2-6.el7_8               fuse3-libs.x86_64 0:3.6.1-4.el7
  slirp4netns.x86_64 0:0.4.3-4.el7_8
 
Complete!
 
# docker --version
Docker version 25.0.3, build 4debf41
 
# systemctl start docker
 
# ps -ef | grep docker
root       325 18874  0 15:56 pts/0    00:00:00 grep --color=auto docker
root     32344     1  2 15:56 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
 

 

1.    Bridge 네트워크 구성

Docker 컨테이너는 언제든 재시작시 해당 컨테이너의 IP정보가 변경될 수 있다.
MySQL Replication 설정이나 HA설정 IP를 사용하게 되면 컨테이너 IP때문에 Replication 설정이 깨질 수 있다. 이러한 문제를 방지하기 위해 Bridge Network를 구성하고 net ALIAS를 사용하여 IP변경에도 문제가 발생하지 않도록 할 수 있게 구성한다.
# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
69f284c2ce30   bridge    bridge    local
22cda16b8dbe   host      host      local
39017583680e   none      null      loca
# docker network create --driver bridge mybridge
# docker network ls
NETWORK ID     NAME       DRIVER    SCOPE
69f284c2ce30   bridge     bridge    local
22cda16b8dbe   host       host      local
b878e1fa6c9b   mybridge   bridge    local
39017583680e   none       null      local

 

Docker MySQL 생성

Container Docker Data Stateful

CONTAINER가 삭제된 후 재 생성되면 DOCKER IMAGE 초기의 상태로 시작되게 된다.

이렇게 되면 데이터를 유지할 수 없게 되는데 이러한 문제를

 

Docker MySQL 데이터파일들을 Docker 외부로 설정하여 Docker 컨테이너가 삭제되더라도 데이터파일은 삭제되지 않게 하여 데이터를 보존할 수 있도록 설정한다.

Directory 생성

 
# mkdir -p /db/db001/log /db/db001/conf /db/db001/data/
# mkdir -p /db/db002/log /db/db002/conf /db/db002/data/
# mkdir -p /db/db003/log /db/db003/conf /db/db003/data/
 
 
# chmod 777 /db/db001/log /db/db001/conf /db/db001/data/
# chmod 777 /db/db002/log /db/db002/conf /db/db001/data/
# chmod 777 /db/db003/log /db/db003/conf /db/db001/data/
 

 

Docker MySQL Parameter Configuration

# cd /db/db001/conf
# vi my.cnf
 
[mysqld]
log_bin                         = mysql-bin
binlog_format                   = ROW
gtid_mode                       = ON
enforce-gtid-consistency        = true
server-id                       = 100
log_slave_updates
datadir                         = /var/lib/mysql
socket                          = /var/lib/mysql/mysql.sock
#symbolic-link                   = 0
log-error                       = /var/log/mysql/mysqld.log
pid-file                        = /var/run/mysqld/mysqld.pid
report_host                     = db001
 
[mysqld_safe]  
pid-file                        = /var/run/mysqld/mysqld.pid
socket                          = /var/lib/mysql/mysql.sock
nice                             = 0
 

 

# cd /db/db002/conf
# vi my.cnf
 
[mysqld]
log_bin                         = mysql-bin
binlog_format                   = ROW
gtid_mode                       = ON
enforce-gtid-consistency        = true
server-id                       = 200
log_slave_updates
datadir                         = /var/lib/mysql
socket                          = /var/lib/mysql/mysql.sock
symbolic-link                   = 0
log-error                       = /var/log/mysql/mysqld.log
pid-file                        = /var/run/mysqld/mysqld.pid
report_host                     = db002
 
[mysqld_safe]  
pid-file                        = /var/run/mysqld/mysqld.pid
socket                          = /var/lib/mysql/mysql.sock
nice                             = 0
 

 

# cd /db/db003/conf
# vi my.cnf
 
[mysqld]
log_bin                         = mysql-bin
binlog_format                   = ROW
gtid_mode                       = ON
enforce-gtid-consistency        = true
server-id                       = 300
log_slave_updates
datadir                         = /var/lib/mysql
socket                          = /var/lib/mysql/mysql.sock
symbolic-link                   = 0
log-error                       = /var/log/mysql/mysqld.log
pid-file                        = /var/run/mysqld/mysqld.pid
report_host                     = db003
 
[mysqld_safe]  
pid-file                        = /var/run/mysqld/mysqld.pid
socket                          = /var/lib/mysql/mysql.sock
nice                             = 0
 

Docker MySQL 생성

#cd /db/db001/conf
 
# docker run -i -t --name db001 -h db001 -p 3306:3306  --net mybridge --net-alias=db001 -v /db/db001/data:/var/lib/mysql -v /db/db001/log:/var/log/mysql -v /db/db001/conf:/etc/percona-server.conf.d -e MYSQL_ROOT_PASSWORD="root" -d percona:5.7.30
#cd /db/db002/conf
 
# docker run -i -t --name db002 -h db002 -p 3307:3306  --net mybridge --net-alias=db002 -v /db/db002/data:/var/lib/mysql -v /db/db002/log:/var/log/mysql -v /db/db002/conf:/etc/percona-server.conf.d -e MYSQL_ROOT_PASSWORD="root" -d percona:5.7.30
 
#cd /db/db003/conf
 
# docker run -i -t --name db003 -h db003 -p 3308:3306  --net mybridge --net-alias=db003 -v /db/db003/data:/var/lib/mysql -v /db/db003/log:/var/log/mysql -v /db/db003/conf:/etc/percona-server.conf.d -e MYSQL_ROOT_PASSWORD="root" -d percona:5.7.30
# docker ps -a
 
CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS          PORTS                                       NAMES
d7d07da14990   percona:5.7.30   "/docker-entrypoint.??   26 seconds ago   Up 11 seconds   0.0.0.0:3308->3306/tcp, :::3308->3306/tcp   db003
792068ff667f   percona:5.7.30   "/docker-entrypoint.??   33 seconds ago   Up 32 seconds   0.0.0.0:3307->3306/tcp, :::3307->3306/tcp   db002
118ff8cca60d   percona:5.7.30   "/docker-entrypoint.??   40 seconds ago   Up 39 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp   db001
 

 

Docker MySQL Replication 설정

DB001<Master>
#docker exec -it -uroot db001 /bin/bash
#mysql -uroot -p
Password: root
 
mysql> create user 'repl'@'%' IDENTIFIED BY 'repl'; 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
Ping Test
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.3  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 656 (656.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
# ping db001
PING db001 (172.18.0.2) 56(84) bytes of data.
64 bytes from db001 (172.18.0.2): icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from db001 (172.18.0.2): icmp_seq=2 ttl=64 time=0.032 ms
64 bytes from db001 (172.18.0.2): icmp_seq=3 ttl=64 time=0.033 ms
64 bytes from db001 (172.18.0.2): icmp_seq=4 ttl=64 time=0.035 ms
 
--- db001 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6001ms
rtt min/avg/max/mdev = 0.029/0.031/0.035/0.006 ms
 
[root@db001 /]# ping db002
PING db002 (172.18.0.3) 56(84) bytes of data.
64 bytes from db002.mybridge (172.18.0.3): icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from db002.mybridge (172.18.0.3): icmp_seq=2 ttl=64 time=0.056 ms
 
--- db002 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.056/0.067/0.078/0.011 ms
 
[root@db001 /]# ping db003
PING db003 (172.18.0.4) 56(84) bytes of data.
64 bytes from db003.mybridge (172.18.0.4): icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from db003.mybridge (172.18.0.4): icmp_seq=2 ttl=64 time=0.057 ms
64 bytes from db003.mybridge (172.18.0.4): icmp_seq=3 ttl=64 time=0.060 ms
 

 

-- db002(Slave)
#docker exec -it db002 /bin/bash
#mysql -uroot -p
 
mysql> reset master;
mysql> CHANGE MASTER TO MASTER_HOST='db001', MASTER_USER='repl',MASTER_PASSWORD='repl', MASTER_AUTO_POSITION=1;
mysql> START SLAVE;
mysql> show slave status\G
            Slave_IO_Running: Yes
           Slave_SQL_Running: Yes
 

 

-- db003(Slave)
#docker exec -it -uroot db003 /bin/bash
#mysql -uroot -p
 
mysql> reset master;
mysql> CHANGE MASTER TO MASTER_HOST='db001', MASTER_USER='repl',MASTER_PASSWORD='repl', MASTER_AUTO_POSITION=1;
mysql> START SLAVE;
mysql> show slave status\G
            Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

Docker MySQL Replication 데이터 검증

Master(db001)테이블 생성 후 데이터 삽입 한 뒤 Slave(db002),(db003) 에서 조회 했을 때 테이블과 데이터가 일치 하는지 확인

Master DB
#docker exec -it -uroot db001 /bin/bash
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.01 sec)
 
mysql> USE testdb;
-- 테이블 생성
CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    department VARCHAR(50),
    salary INT,
    hire_date DATE
);

-- 데이터 삽입
INSERT INTO employees (name, department, salary, hire_date)
VALUES
('Alice', 'HR', 50000, '2022-01-15'),
('Bob', 'IT', 60000, '2022-03-10'),
('Charlie', 'Finance', 55000, '2022-06-25');
 
Slave DB(DB002)
#docker exec -it -uroot db002 /bin/bash
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.01 sec)
 
mysql> USE testdb;
-- 데이터확인
mysql> select * from employees;
+----+---------+------------+--------+------------+
| id | name    | department | salary | hire_date  |
+----+---------+------------+--------+------------+
|  1 | Alice   | HR         |  50000 | 2022-01-15 |
|  2 | Bob     | IT         |  60000 | 2022-03-10 |
|  3 | Charlie | Finance    |  55000 | 2022-06-25 |
+----+---------+------------+--------+------------+
3 rows in set (0.00 sec
Slave DB(DB003)
#docker exec -it -uroot db003 /bin/bash
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.01 sec)
 
mysql> USE testdb;
-- 데이터확인
mysql> select * from employees;
+----+---------+------------+--------+------------+
| id | name    | department | salary | hire_date  |
+----+---------+------------+--------+------------+
|  1 | Alice   | HR         |  50000 | 2022-01-15 |
|  2 | Bob     | IT         |  60000 | 2022-03-10 |
|  3 | Charlie | Finance    |  55000 | 2022-06-25 |
+----+---------+------------+--------+------------+
3 rows in set (0.00 sec

Docker Orchestrator 구성

Orchestrator Container 생성
복제 구성이 완료되었지만 Master(DB001) 서버가 문제가 발생하여 shutdown 될 경우 자동으로 Failover 해주는(Slave -> Master 승격) orchestrator(HA)구성합니다.
# docker run -i -t --name orchestrator -h orchestrator

 

Orchestrator 사용을 위한 유저 생성
docker exec -it uroot db001 /bin/bash
#mysql -uroot -p
root:root
mysql> create user orc_client_user@'172.%' identified by 'orc_client_password';
mysql> GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO orc_client_user@'172.%';
mysql> GRANT SELECT ON mysql.slave_master_info TO orc_client_user@'172.%';

 

Docker 컨테이너 IP조회
[root@ts-oracle1 conf]# docker inspect --format '{{.NetworkSettings.Networks.mybridge.IPAddress}}' orchestrator
172.18.0.5
[root@ts-oracle1 ~]# docker inspect --format '{{.NetworkSettings.Networks.mybridge.IPAddress}}' orchestrator db001 db002 db003
172.18.0.5
172.18.0.2
172.18.0.3
172.18.0.4
MySQL 사용자(USER) 조회
mysql> select user, host from user;
+-----------------+-----------+
| user            | host      |
+-----------------+-----------+
| repl            | %         |
| root            | %         |
| orc_client_user | 172.%     |
| mysql.sys       | localhost |
| root            | localhost |
+-----------------+-----------+

http://{Docker_Host_IP}:3000/web/clusters

http://172.18.0.5:3000/web/discover

Discovery 메뉴에 Docker Hostname(db001 3306 Port 등록)

Node 수행 Docker
Master DML(Update, Insert , Select) db001
Slave#1 Select db002
Slave#2 Select db003
반응형

'MySQL > MySQL Installation' 카테고리의 다른 글

Docker MySQL8.0 설치  (0) 2024.07.04
MySQL 5.7.27 Source Installation (MySQL 5.7.27 소스설치)  (0) 2022.01.18

댓글