블로그로 돌아가기
1월 13, 2026가이드

Linux 서버에서 MySQL 데이터베이스를 설정하는 방법

Ubuntu 및 CentOS에서 MySQL 데이터베이스 서버를 설치, 보안 및 관리하는 방법에 대한 전체 가이드.

Linux 서버에서 MySQL 데이터베이스를 설정하는 방법

MySQL은 가장 인기 있는 오픈 소스 관계형 데이터베이스 관리 시스템 중 하나입니다. 이 가이드는 Hiddence Linux 서버에 MySQL을 설치, 보안 및 구성하는 데 도움이 될 것입니다.

MySQL 설치

2026년 기준 MySQL 8.0이 현재 안정 버전입니다. 설치 과정은 Ubuntu/Debian과 RHEL 기반 배포판 간에 약간의 차이가 있습니다. 아래에서 두 가지 방법을 모두 다룹니다.

Ubuntu/Debian에 MySQL 설치

Ubuntu 22.04 LTS 이상 버전의 경우 기본 저장소에서 MySQL 8.0을 사용할 수 있습니다. apt를 사용하여 설치하세요:

bash
sudo apt update
sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql

# 설치 확인
sudo systemctl status mysql
mysql --version

RHEL / CentOS / AlmaLinux / Rocky Linux에 MySQL 설치

RHEL 기반 배포판의 경우 먼저 MySQL 저장소를 추가해야 합니다. 프로덕션 용도로는 MySQL 8.0을 권장합니다:

bash
# MySQL 저장소 패키지 다운로드
sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

# 저장소 설치
sudo rpm -ivh mysql80-community-release-el9-1.noarch.rpm

# CentOS 8/Rocky Linux 8/AlmaLinux 8의 경우 다음을 사용하세요:
# sudo wget https://dev.mysql.com/get/mysql80-community-release-el8-7.noarch.rpm

# MySQL 설치
sudo yum install mysql-server -y

# MySQL 시작 및 활성화
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 설치 확인
sudo systemctl status mysqld
mysql --version

설치 검증

설치 후 MySQL이 올바르게 실행 중인지 확인하세요:

bash
# 서비스 상태 확인
sudo systemctl status mysql  # Ubuntu/Debian
sudo systemctl status mysqld  # RHEL / CentOS

# MySQL 버전 확인
mysql --version

# 연결 테스트(root 비밀번호 요청됨)
sudo mysql -u root -p

MySQL 설치 보안 강화

MySQL 보안 설치 스크립트를 실행하세요:

bash
sudo mysql_secure_installation
# 프롬프트에 따라 root 비밀번호 설정, 익명 사용자 제거, 원격 root 로그인 비활성화 등을 수행하세요.

데이터베이스 및 사용자 생성

bash
sudo mysql -u root -p
CREATE DATABASE myapp_db;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

사용자 관리

bash
sudo mysql -u root -p
# 사용자 생성
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

# 권한 부여
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

# 권한 회수
REVOKE ALL PRIVILEGES ON database_name.* FROM 'newuser'@'localhost';

# 사용자 삭제
DROP USER 'newuser'@'localhost';

원격 접속 활성화(선택 사항)

원격 연결을 허용하려면 bind-address를 수정하세요:

bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address = 127.0.0.1을 bind-address = 0.0.0.0으로 변경
sudo systemctl restart mysql
# 또한 방화벽에서 3306 포트를 허용하도록 설정하세요

데이터베이스 백업 및 복구

백업 및 복구 생성:

bash
# 백업
mysqldump -u root -p database_name > backup.sql

# 복구
mysql -u root -p database_name < backup.sql

베스트 프랙티스

  • 데이터베이스 사용자에게 강력한 비밀번호를 사용하세요
  • 사용자에게 필요한 권한만 부여하세요
  • 데이터베이스를 정기적으로 백업하세요
  • 보안 패치를 위해 MySQL을 최신 상태로 유지하세요
  • 데이터베이스 성능을 모니터링하고 쿼리를 최적화하세요