반응형

1.  Linux 버전 확인

cat /etc/rocky-release
# Rocky Linux release 9.5 (Blue Onyx)

2.  MySQL Yum Repository 추가

2.1 MySQL Yum Repository 설정

# wget 설치
sudo dnf install -y wget

# MySQL RPM download
wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

# MySQL RPM Install
sudo dnf install -y mysql80-community-release-el9-1.noarch.rpm

2.2 Yum Repository 확인

dnf repolist enabled | grep mysql

3.  MySQL 설치

 

sudo dnf install -y mysql-community-server

# gpg public key 오류가 지속적으로 발생하여 gpg check 없이 설치(개발 서버만 해당)
sudo dnf install -y mysql-community-server --nogpgcheck

3.1 GPG-Key 오류 대처 방법

# GPG-KEY download
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# GPG-KEY download 확인
ls -al /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022

# dnf clean & makecache
sudo dnf clean all
sudo dnf makecache

4.  MySQL 서비스 시작 및 OS 재시동 시 자동 실행 설정

# mysqld server enable
sudo systemctl enable mysqld
# mysqld service start 
sudo systemctl start mysqld
# mysqld start
/etc/init.d/mysqld start
# mysqld stop
/etc/init.d/mysqld stop
# mysqld restart
/etc/init.d/mysqld restart

# 상태 확인
sudo systemctl status mysqld

5.  초기 root 비밀번호 확인 및 보안 설정

5.1 초기 비밀번호 확인

sudo grep 'temporary password' /var/log/mysqld.log

5.2 보안 설정(비밀번호 변경, 불필요 기능 제거)

sudo mysql_secure_installation
#설정 항목
# 1. root 비밀번호 변경
# 1.5.1에서 확인한 초기 비밀번호 입력 후 root 비밀번호 변경
# 2025-07-08T01:02:51.432419Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: P-!xhHB2qfkN
# 2. 익명 사용자 삭제
# 3. 원격 root 로그인 비활성화
# 4. test DB 삭제
# 5. 권한 테이블 새로고침

6.  MySQL 접속 테스트

mysql -u root -p
Enter password: {{1.5.2에서 변경한 root password 입력}}

7.  MySQL 기본 설정 파일 변경

sudo vi /etc/my.cnf

7.1 my.cnf 파일 변경 사항

[mysqld]
port = 3306
bind-address = 0.0.0.0
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default_time_zone = '+00:00'
log_bin_trust_function_creators = 1

# 바이너리 로그 보관 기간 설정 (예: 7일간만 보관)
binlog_expire_logs_seconds = 604800
# 개별 로그 파일의 최대 크기 제한 (예: 500MB)
max_binlog_size = 500M

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

7.2 MySQL Service restart

# MySQL Service restart
sudo systemctl restart mysqld

7.3 설정 내용 확인

-- MySQL Console

-- 포트 확인
SHOW GLOBAL VARIABLES LIKE 'port';

-- 문자셋 확인
SHOW VARIABLES LIKE 'character_set%';

-- 타임존 확인
SHOW VARIABLES LIKE 'time_zone';
# 바인드 주소 확인 (netstat 또는 ss 명령어)
sudo ss -lntp | grep mysqld

7.4 Rocky Linux 방화벽 설정

sudo firewall-cmd --add-port=33065/tcp --permanent
sudo firewall-cmd --reload

8.  MySQL DB 및 계정 생성

/* Database 생성 */
-- 업무 데이터베이스
CREATE DATABASE work_database_name
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

/* 계정 생성 */
-- 전체 관리 계정
CREATE USER 'super_user_name'@'%' IDENTIFIED BY 'super_user_name_password';
-- work_database_name 관리 계정
CREATE USER 'user_name'@'%' IDENTIFIED BY 'user_name_password';

/* 권한 추가 */
GRANT ALL PRIVILEGES ON work_database_name.* TO 'super_user_app'@'%';
GRANT ALL PRIVILEGES ON work_database_name.* TO 'user_name'@'%';

/* 권한 적용 */
FLUSH PRIVILEGES;

/* 권한 확인 */
show grants for 'super_user_name'@'%';
show grants for 'user_name'@'%';

9.  MySQL 서버 용량 부족시 대처 방법

-- 현재 디스크 상황이 급하므로, 2일 전 데이터까지만 남기고 모두 삭제
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 2 DAY);
반응형

'Database' 카테고리의 다른 글

Redis 설치 절차  (0) 2026.01.28
MongoDB(7.0.24) 설치 절차  (0) 2026.01.28
MySQL UTC 설정  (0) 2026.01.27
[MySQL]Insert, Update, Delete Query Generator  (0) 2018.08.21
데이터모델링의 개요  (0) 2018.08.02

+ Recent posts