Install MySQL 8.0 (yum) with Galera cluster in CentOS 7
CentOS 7 에서 MySQL 8.0 과 Galera 4 버전을 설치하고 cluster 설정을 해보았습니다.
아래는 간략히 설치하고 설정하는 방법만 기술하였습니다.
1. 설치
서버 두대에 동일하게 설치를 진행합니다.
# vi /etc/yum.repos.d/galera.repo
[galera] name = Galera baseurl = https://releases.galeracluster.com/galera-4.9/centos/7/x86_64 gpgkey = https://releases.galeracluster.com/GPG-KEY-galeracluster.com gpgcheck = 1 [mysql-wsrep] name = MySQL-wsrep baseurl = http://releases.galeracluster.com/mysql-wsrep-8.0.25-26.7/centos/7/x86_64/ gpgkey = https://releases.galeracluster.com/GPG-KEY-galeracluster.com gpgcheck = 1 |
# yum -y install galera-4 mysql-wsrep-8.0
2. 사용자 생성 및 권한 부여
(마스터 노드 192.168.200.105 에서만)
계정 생성을 위해 mysqld 를 우선 가동해줍니다.
# systemctl start mysqld
# mysql -p
Enter password: (root 패스워드 입력 후 엔터) // 초기 root 패스워드는 로그파일에 기록되어 있습니다. (/var/log/mysqld.log)
최초 패스워드로 로그인하면 새로운 패스워드로 변경 전까지 일반 작업은 불가능합니다. 아래와 같이 변경 해줍니다.
mysql> alter user 'root'@'localhost' identified by '12345678';
mysql> flush privileges;
두 서버간 동기화를 담당할 계정 galera 를 생성합니다. 계정명은 무엇이든 상관 없습니다.
mysql> CREATE USER 'galera'@'localhost' IDENTIFIED WITH caching_sha2_password BY '12345678';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'galera'@'localhost';
mysql> GRANT GRANT OPTION ON *.* TO 'galera'@'localhost';
mysql> flush privileges;
3. 설정
두 노드의 설정 방법이 약간 다릅니다. 파란색 글자를 유의해서 설정합니다.
(마스터 노드 192.168.200.105 에서)
# systemctl stop mysqld
# vi /etc/my.cnf
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # 여기에서부터 추가 user=mysql bind-address="0.0.0.0" binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 innodb_flush_log_at_trx_commit=0 innodb_buffer_pool_size=2G wsrep_on=ON wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.200.105,192.168.200.106" wsrep_provider_options="gcache.size=300M; gcache.page_size=300M;" wsrep_cluster_name="cluster" wsrep_node_name="db1" wsrep_node_address="192.168.200.105" wsrep_sst_method="clone" wsrep_sst_auth="galera:12345678" |
설정 후 galera cluster 기능을 사용하는 mysqld 를 최초 가동 합니다.
# mysqld_bootstrap --wsrep-new-cluster
(슬레이브 노드 192.168.200.106 에서)
# vi /etc/my.cnf
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # 여기에서부터 추가 user=mysql bind-address="0.0.0.0" binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 innodb_flush_log_at_trx_commit=0 innodb_buffer_pool_size=2G wsrep_on=ON wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.200.105,192.168.200.106" wsrep_provider_options="gcache.size=300M; gcache.page_size=300M;" wsrep_cluster_name="cluster" wsrep_node_name="db2" wsrep_node_address="192.168.200.106" wsrep_sst_method="clone" wsrep_sst_auth="galera:12345678" |
저장 후 일반적인 가동만 해주면 설정되어진 값으로 자동 동기화가 이루어집니다.
# systemctl start mysqld
4. 확인
쿼리로 직접 데이터 입력해보는 방법과 mysql 상태값을 확인하는 방법이 있습니다.
1) 마스터 서버에서 DB 를 생성하면 슬레이브 서버에서도 확인이 가능
mysql> create database sysdocu;
mysql> show databases;
2) galera cluster 설정 상태 확인
mysql> show variables like '%wsrep_cluster%';
+-------------------------+-----------------------------------------+
| Variable_name | Value |
+-------------------------+-----------------------------------------+
| wsrep_cluster_address | gcomm://192.168.220.105,192.168.220.106 |
| wsrep_cluster_name | cluster |
| wsrep_cluster_server_id | 1 |
+-------------------------+-----------------------------------------+
'리눅스 > MySQL' 카테고리의 다른 글
[MySQL] Slave_IO_Running: Connecting 조치 방법 (0) | 2022.05.11 |
---|---|
MySQL 8.0 SSL 설정하기 (0) | 2021.12.15 |
CentOS 7 에 MySQL 8.0 설치 (rpm), 사용자 생성 및 권한 주기 (SHA256 암호 적용) (0) | 2021.10.18 |
MySQL 중복된 데이터만 조회하기 (0) | 2020.10.23 |
MySQL 8 계정 패스워드 변경 (일반 변경, 분실 변경) (0) | 2020.09.01 |