반응형
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 |