리눅스 환경에서 데이터베이스를 구축하는 것은 서버 관리의 기본 중 하나입니다. 특히, MySQL은 웹 애플리케이션에서 가장 널리 사용되는 데이터베이스 시스템으로, 안정성과 성능이 검증되어 있습니다. 리눅스에서 MySQL을 설치하는 방법은 다양하지만, yum(또는 최신 버전의 dnf) 패키지 관리자를 이용하는 것이 가장 간편하고 안정적입니다.
📚 함께 읽으면 좋은 글
이 가이드는 CentOS, RHEL, Fedora와 같은 Red Hat 계열 리눅스 배포판에서 yum을 사용하여 MySQL을 설치하고 초기 설정을 완료하는 과정을 상세히 다룹니다. 특히 2025년 현재에도 여전히 유효한 설치 방법론과 최신 버전(예: MySQL 8.0)의 설치 과정을 중점적으로 설명하여, 독자분들이 가장 빠르고 정확하게 데이터베이스 서버를 구축할 수 있도록 돕겠습니다.
구 버전 리눅스에서는 yum이 기본 패키지이지만, 최신 OS에서는 dnf가 그 역할을 대체하고 있습니다. 하지만 대부분의 경우 yum 명령어는 dnf로 심볼릭 링크되어 호환되므로, 본 가이드에서는 범용적으로 yum을 사용합니다.
MySQL Yum Repository 설정 확인하기
yum을 사용하여 MySQL을 설치하려면 먼저 MySQL 공식 저장소(Repository)를 시스템에 추가해야 합니다. 기본 리눅스 저장소에는 구 버전의 MySQL이나 MariaDB만 포함되어 있을 수 있기 때문에, 최신 버전을 설치하기 위해서는 이 과정이 필수적입니다. 이 저장소 설정은 MySQL의 최신 보안 패치 및 기능 업데이트를 지속적으로 받을 수 있게 해줍니다.
저장소를 추가하는 가장 일반적인 방법은 MySQL이 제공하는 RPM 파일을 다운로드하여 설치하는 것입니다. 이 RPM 파일은 시스템에 MySQL 서버의 메타데이터 및 설치 경로를 등록해 줍니다.
# MySQL 8.0 저장소 RPM 다운로드 (버전에 따라 URL 변경될 수 있음) sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
또는 최신 버전 확인 후 다운로드
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-11.noarch.rpm
저장소를 설치한 후에는 yum 캐시를 업데이트하여 새로운 저장소 정보를 반영해야 합니다.
# yum 캐시 업데이트 sudo yum clean all
이 단계를 완료하면 이제 시스템은 MySQL 공식 서버에서 최신 패키지 정보를 가져올 수 있게 됩니다.
Yum을 이용한 MySQL 서버 설치 상세 더보기
저장소 설정이 완료되었다면, 이제 yum 명령어를 사용하여 MySQL 서버 패키지를 설치할 차례입니다. mysql-community-server 패키지는 데이터베이스 서버와 필요한 모든 구성 요소를 포함하고 있습니다. 설치 과정은 비교적 간단하며, 패키지 관리자가 모든 의존성을 자동으로 해결해 줍니다.
# MySQL 서버 설치 sudo yum install -y mysql-community-server
설치가 완료되면, MySQL 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정해야 합니다.
# MySQL 서비스 시작 sudo systemctl start mysqld
부팅 시 자동 시작 설정
sudo systemctl enable mysqld
서비스 상태 확인
sudo systemctl status mysqld
서비스 상태 확인 시, Active: active (running) 메시지가 나타나면 MySQL 서버가 정상적으로 실행되고 있는 것입니다. 이 단계까지 완료되면, 기본적인 MySQL 데이터베이스 시스템은 설치 및 실행된 상태입니다. 다음 단계에서는 보안 및 접근을 위한 초기 설정을 진행합니다. 설치 후 반드시 초기 보안 설정을 진행하여 데이터베이스의 무단 접근을 방지해야 합니다.
MySQL 초기 임시 비밀번호 확인 및 설정 보기
MySQL 8.0 버전부터는 보안 강화 정책에 따라 설치 시 임시 루트(root) 비밀번호가 자동으로 생성됩니다. 이 임시 비밀번호를 확인한 후, 보안 스크립트를 통해 새로운 비밀번호로 변경하고 기타 보안 설정을 진행해야 합니다.
초기 임시 비밀번호 확인 확인하기
임시 비밀번호는 MySQL 서버의 에러 로그 파일에 저장됩니다. 다음 명령어를 사용하여 로그 파일에서 임시 비밀번호를 찾을 수 있습니다.
sudo grep 'temporary password' /var/log/mysqld.log
출력된 임시 비밀번호를 안전한 곳에 기록해 둡니다. 이 비밀번호를 사용하여 MySQL 서버에 최초로 접속할 수 있습니다.
MySQL 보안 스크립트 실행 상세 더보기
임시 비밀번호를 확인했다면, 이제 mysql_secure_installation 스크립트를 실행하여 보안을 강화합니다. 이 스크립트는 다음 항목들을 설정할 수 있게 해줍니다.
- 루트 비밀번호 변경
- 익명 사용자 제거
- 원격 루트 로그인 비활성화
- 테스트 데이터베이스 제거
# 보안 설정 스크립트 실행 sudo mysql_secure_installation
스크립트 실행 중 다음 질문에 답하게 됩니다.
- VALIDATE PASSWORD COMPONENT: 비밀번호 강도 검사 기능을 사용할지 묻습니다. 이 기능을 활성화하면 비밀번호를 설정할 때 일정 수준 이상의 복잡도를 요구합니다.
- CHANGE the password for root?: 임시 비밀번호를 새 비밀번호로 변경합니다. 이때 강력한 비밀번호 규칙(특수문자, 대소문자, 숫자 포함)을 따르는 것이 중요합니다.
- 나머지 질문들(익명 사용자 제거, 원격 루트 로그인 비활성화 등)에는 보안을 위해 대부분 **Yes (y)**를 선택하는 것이 좋습니다.
스크립트가 완료되면, 새로운 비밀번호로 MySQL에 접속하여 정상적으로 작동하는지 확인할 수 있습니다.
MySQL 접속 및 외부 접근 설정 확인하기
보안 설정을 마쳤다면, 명령줄에서 MySQL 서버에 접속하여 데이터베이스를 관리할 수 있습니다.
MySQL 커맨드라인 접속 확인하기
다음 명령어로 루트 계정으로 MySQL에 접속합니다. 이전에 설정한 새 비밀번호를 입력해야 합니다.
# MySQL 접속 mysql -u root -p
접속에 성공하면 mysql> 프롬프트가 나타나며, 여기서 데이터베이스 생성, 테이블 관리 등의 SQL 작업을 수행할 수 있습니다.
외부 접근을 위한 방화벽 설정 상세 더보기
기본적으로 MySQL은 3306 포트를 사용합니다. 만약 다른 서버나 외부 PC에서 이 MySQL 서버에 접속해야 한다면, 리눅스 시스템의 방화벽(Firewall)에서 3306 포트를 열어주어야 합니다. CentOS/RHEL에서는 주로 firewalld를 사용합니다.
# 3306 포트 허용 (영구적용) sudo firewall-cmd --add-port=3306/tcp --permanent
방화벽 설정 리로드
sudo firewall-cmd --reload
또한, MySQL 내부적으로도 외부 접근을 허용하는 사용자 계정을 생성하거나, 기존 계정의 호스트 설정을 localhost에서 %(모든 호스트)로 변경해야 합니다. 이는 보안상 매우 민감한 설정이므로, 특정 IP 주소만 허용하는 것을 강력히 권장합니다.
결론 및 다음 단계 확인하기
이 가이드를 통해 yum 저장소를 활용하여 리눅스 서버에 MySQL을 설치하고, 초기 보안 설정까지 완료했습니다. 이 방법은 MySQL의 최신 버전과 보안 패치를 가장 안정적으로 유지할 수 있는 표준 방법론입니다. 설치 후에는 반드시 데이터베이스 관리를 위한 사용자 계정 생성, 백업 정책 수립, 성능 튜닝 등의 후속 작업을 진행해야 합니다.
MySQL은 복잡하지만 강력한 시스템이므로, 공식 문서를 참조하여 지속적으로 관리하는 것이 안정적인 서비스 운영의 핵심입니다. 최신 버전의 특징과 보안 업데이트에 항상 주의를 기울여 주십시오.
📌 추가로 참고할 만한 글
FAQ 자주 묻는 질문
Q.1. Yum 설치 시 MySQL 대신 MariaDB가 설치됩니다.
A. 리눅스 배포판의 기본 저장소(기본 리포지토리)에는 MySQL 대신 MariaDB가 포함되어 있는 경우가 많습니다. MariaDB는 MySQL에서 분리되어 개발된 프로젝트로 호환성은 높지만, 엄연히 다른 제품입니다. 최신 MySQL을 설치하려면 반드시 본문에서 설명한 것처럼 MySQL 공식 Yum 저장소를 먼저 추가해야 합니다. 공식 저장소를 추가하면 yum install mysql-community-server 명령어가 MySQL을 정확히 지정하게 됩니다.
Q.2. MySQL 8.0 설치 후 이전 버전처럼 비밀번호 없이 접속이 안 되나요?
A. MySQL 8.0부터는 보안이 강화되어, 설치 직후에는 root 계정에 임시 비밀번호가 설정됩니다. 이는 보안상 매우 중요한 변경사항입니다. 비밀번호 없이 접속을 시도하면 ‘Access denied’ 에러가 발생합니다. 반드시 /var/log/mysqld.log에서 임시 비밀번호를 확인하고 mysql_secure_installation을 통해 새 비밀번호를 설정해야 합니다.
Q.3. MySQL 서비스 시작이 자꾸 실패합니다.
A. 서비스 시작 실패의 가장 흔한 원인은 데이터 디렉터리(일반적으로 /var/lib/mysql)의 권한 문제입니다. 설치 과정에서 권한이 꼬였거나, 수동으로 파일 변경을 시도했을 때 발생할 수 있습니다. sudo chown -R mysql:mysql /var/lib/mysql 명령어로 권한을 복구한 후 다시 sudo systemctl start mysqld를 시도해 보세요. 또한, sudo journalctl -xe | grep mysql 명령어로 에러 로그를 확인하여 근본적인 원인을 파악해야 합니다.
Q.4. 원격 접속이 되도록 방화벽 포트 3306을 열었는데도 접속이 안됩니다.
A. 이는 크게 두 가지 이유 때문일 수 있습니다. 첫째, MySQL 내부 설정입니다. MySQL 서버에 접속하여 외부에서 접속할 사용자 계정의 호스트가 localhost로 되어 있는지 확인하고, 필요하다면 %(모든 호스트) 또는 특정 외부 IP로 변경하는 GRANT 문을 실행해야 합니다. 둘째, SELinux 설정 때문일 수 있습니다. SELinux가 3306 포트의 트래픽을 차단하고 있는지 확인하고 허용해야 합니다.