기술 가이드

CentOS 7 및 Ubuntu 16.04에 MySQL 5.7 설치 및 설정

6 min read 데이터베이스 업데이트됨 08 Oct 2025
CentOS7·Ubuntu16.04에 MySQL 5.7 설치 및 설정
CentOS7·Ubuntu16.04에 MySQL 5.7 설치 및 설정

개요

MySQL은 Oracle이 개발한 오픈소스 관계형 데이터베이스 관리 시스템입니다. 소스 코드는 GNU GPL로 배포되며, 상용 환경을 위한 유료 에디션도 제공합니다. MySQL은 LAMP 또는 LEMP 스택의 핵심 구성 요소로서 많은 애플리케이션에서 데이터 저장소로 사용됩니다.

이 튜토리얼에서는 CentOS 7 및 Ubuntu 16.04 서버에 MySQL 5.7(안정 버전)을 설치하고 초기 설정을 완료하는 방법을 단계별로 설명합니다. 주요 작업은 다음과 같습니다.

  • MySQL 최신 패키지를 제공하는 저장소 추가
  • MySQL 5.7 설치
  • MySQL 서비스 시작 및 부팅 시 자동 시작 등록
  • MySQL 루트 비밀번호 설정/재설정
  • 새 데이터베이스와 사용자 생성 및 접속 테스트

사전 요구사항: 루트 권한 또는 sudo 권한이 있어야 하며, 최소한 인터넷 연결과 패키지 관리자(yum/apt)가 정상 동작해야 합니다.

단계 1 - 새 MySQL 저장소 추가

MySQL은 rpm 및 deb 계열 배포판용 저장소 패키지를 제공합니다. 저장소를 시스템에 추가해야 최신 안정 버전을 설치할 수 있습니다.

CentOS 7에서 저장소를 추가하려면 다음 yum 명령을 실행합니다.

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

프롬프트가 나오면 ‘y’를 입력하고 Enter를 눌러 진행합니다.

Ubuntu에서는 MySQL apt 저장소 패키지를 내려받아 dpkg로 설치한 뒤 저장소를 갱신합니다.

wget https://dev.mysql.com/get/mysql-apt-config_0.8.3-1_all.deb  
dpkg -i mysql-apt-config_0.8.3-1_all.deb  
apt-get update

패키지 설치 중 어떤 MySQL 버전을 설치할지, 추가 도구를 선택할지 묻는 대화상자가 나타납니다. 기본값(Ok)을 그대로 선택하면 됩니다.

Ubuntu 시스템에 MySQL 저장소가 추가되는 화면

새 저장소가 시스템에 추가되었습니다.

단계 2 - MySQL 5.7 설치

저장소가 추가되었으므로 패키지 이름 ‘mysql-community-server’로 MySQL 5.7을 설치합니다.

CentOS:

yum -y install mysql-community-server

Ubuntu:

apt-get install -y mysql-community-server

중요: Ubuntu에서는 설치 과정 중 MySQL 루트 비밀번호를 입력하라는 프롬프트가 나옵니다. 강력한 비밀번호를 입력하고 확인하세요.

설치가 완료되면 다음 단계로 진행합니다.

단계 3 - MySQL 시작 및 부팅 시 자동 시작 등록

설치 후 MySQL을 즉시 시작하고 부팅 시 자동시작되도록 등록합니다.

CentOS에서는 서비스 이름이 mysqld입니다.

systemctl start mysqld  
systemctl enable mysqld

Ubuntu에서는 서비스 이름이 mysql입니다.

systemctl start mysql  
systemctl enable mysql

MySQL은 기본적으로 포트 3306을 사용합니다. 아래 명령으로 네트워크 리스닝 상태를 확인할 수 있습니다.

netstat -plntu

서비스가 부팅 시 자동시작하도록 설정되었는지 확인하려면:

CentOS:

systemctl is-enabled mysqld

mysqld 서비스 시작 및 부팅 시 활성화 확인 화면

Ubuntu:

systemctl is-enabled mysql

mysql 서비스 부팅 활성화 확인 화면(우분투)

‘is-enabled’가 ‘enabled’이면 부팅 시 자동 시작으로 등록된 것입니다.

중요: 포트 3306을 외부에 노출할 경우 방화벽 규칙과 접근 제어를 반드시 검토하세요. CentOS 7의 경우 firewall-cmd로 포트를 열 수 있고, Ubuntu에서는 ufw를 사용합니다. 예:

CentOS(필요 시):

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

Ubuntu(필요 시):

ufw allow 3306/tcp

외부 접속이 필요 없다면 내부 바인딩(localhost)만 허용하거나 보안 그룹/네트워크 레벨에서 제어하세요.

단계 4 - MySQL 루트 비밀번호 설정

Ubuntu에서는 설치 과정에서 루트 암호를 설정했기 때문에 별도 초기 설정이 필요 없을 수 있습니다. CentOS 7에서는 MySQL이 첫 시작 시 임시(root) 비밀번호를 생성해 mysqld 로그에 기록합니다. 로그에서 임시 비밀번호를 찾으려면:

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

임시 비밀번호를 확인한 뒤 MySQL 셸에 접속합니다.

mysql -u root -p  
TYPE DEFAULT PASSWORD

루트 계정 비밀번호를 안전한 비밀번호로 변경합니다. 예시 쿼리:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newhakase-labs123@';  
flush privileges;

mysqld 기본 루트 암호를 변경한 화면

중요: 비밀번호 정책(길이, 복잡성)은 validate_password 같은 플러그인으로 관리될 수 있으므로 강력한 비밀번호를 사용하세요.

추가 권장 작업: mysql_secure_installation 유틸리티를 실행해 익명 사용자 제거, 원격 루트 로그인 차단, 테스트 데이터베이스 제거, 권한 테이블 재로딩 등을 수행하세요.

mysql_secure_installation

단계 5 - 테스트 (새 데이터베이스와 사용자 생성)

새로 설정한 루트 비밀번호로 MySQL 셸에 접속합니다.

mysql -u root -p  
TYPE NEW PASSWORD: Newhakase-labs123@

새 데이터베이스 생성(예: hakaselabs):

create database hakaselabs;

새 사용자 생성 및 비밀번호 설정(예: hakase / Hakase123@):

create user hakase@localhost identified by 'Hakase123@';

새 사용자에게 데이터베이스 권한 부여:

grant all privileges on hakaselabs.* to hakase@localhost identified by 'Hakase123@';  
flush privileges;

새 사용자와 데이터베이스 생성 및 권한 부여 화면

MySQL 셸에서 나와 새 사용자로 다시 접속해 봅니다.

mysql -u hakase -p  
TYPE THE PASSWORD: Hakase123@

데이터베이스 목록 확인:

show databases;

‘hakaselabs’ 데이터베이스가 표시되면 성공입니다.

새 사용자로 접속해 데이터베이스를 확인한 화면

축하합니다. MySQL 5.7이 설치되어 부팅 시 자동 시작되도록 설정되었고, 새 사용자와 데이터베이스를 생성하여 접속에 성공했습니다.

검증 체크리스트

  • 패키지 저장소가 시스템에 추가되었는가?
  • mysql-community-server 패키지가 설치되었는가?
  • 서비스가 실행 중이며 systemctl is-enabled 결과가 ‘enabled’인가?
  • 루트 비밀번호가 안전하게 설정되었는가?
  • mysql_secure_installation을 실행했는가?
  • 테스트 사용자로 로그인하여 데이터베이스가 보이는가?
  • 불필요한 포트(3306)가 외부에 노출되어 있지 않은가?

운영자(역할)별 체크리스트

  • 시스템 관리자

    • 저장소 파일과 GPG 키를 확인
    • systemd 서비스 및 방화벽 규칙 설정
    • 자동 백업 스케줄 계획
  • 데이터베이스 관리자(DBA)

    • 사용자와 권한 최소화
    • 비밀번호 정책 적용
    • 백업과 복원 절차 검증
  • 개발자

    • 연결 문자열과 자격 증명 비밀관리(환경 변수/시크릿 매니저) 적용
    • 애플리케이션에서 접속 테스트

보안 하드닝 권장 사항

  • mysql_secure_installation 실행
  • 원격 루트 접속을 차단하고 필요 시 별도 관리자 계정 사용
  • 최소 권한 원칙으로 사용자 권한을 설정
  • 연결 암호화(TLS) 적용 검토
  • 운영 환경에서는 포트 3306을 네트워크 방화벽으로 제한

문제 해결(일반적 상황과 대처법)

  • 저장소 RPM/DEB URL에 접속하지 못할 때: 인터넷 연결과 DNS, 프록시 설정 확인
  • 설치 후 서비스가 바로 시작되지 않을 때: journalctl -u mysqld 또는 journalctl -u mysql로 로그 확인
  • CentOS에서 임시 비밀번호가 보이지 않음: /var/log/mysqld.log 파일을 다시 확인하거나 mysqld 재시작 로그 확인
  • 포트 3306이 보이지 않음: netstat 또는 ss로 리스닝 여부 확인, bind-address 설정 확인

롤백(제거) 절차 간단 안내

  • CentOS:
yum remove mysql-community-server
  • Ubuntu:
apt-get remove --purge mysql-community-server

데이터 디렉터리(/var/lib/mysql)를 따로 보존하거나 완전히 삭제할 수 있습니다. 삭제 전 반드시 백업하세요.

호환성 및 마이그레이션 메모

  • MySQL 5.7은 MySQL 8.0과 일부 동작이 다릅니다. 신규 프로젝트는 버전 요구사항을 검토하세요.
  • 애플리케이션이 특정 SQL 모드나 문자셋에 의존한다면 마이그레이션 전에 테스트하세요.

수용 기준(테스트 케이스)

  • 루트 사용자로 로그인 가능해야 함
  • 새로 만든 비루트 사용자로 로그인하고 권한이 정상 동작해야 함
  • 시스템 시작 시 MySQL 서비스가 자동으로 올라와야 함
  • show databases; 명령으로 생성한 데이터베이스가 보여야 함

빠른 명령어 요약(치트시트)

  • 저장소 추가(CentOS): yum localinstall
  • 저장소 추가(Ubuntu): dpkg -i && apt-get update
  • 설치: yum -y install mysql-community-server 또는 apt-get install -y mysql-community-server
  • 서비스 시작/등록: systemctl start|enable mysqld 또는 mysql
  • 임시 비밀번호 확인(CentOS): grep ‘temporary’ /var/log/mysqld.log
  • 루트 비밀번호 변경: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘<새비밀번호>’;
  • 보안 스크립트 실행: mysql_secure_installation

자주 묻는 질문

CentOS와 Ubuntu 설치 과정의 차이는 무엇인가요?

CentOS는 rpm 패키지로 저장소를 추가하고 yum으로 설치합니다. Ubuntu는 deb 패키지로 저장소를 추가하고 apt로 설치하며, 설치 중 루트 비밀번호를 묻는 대화상자가 나타납니다.

CentOS에서 임시 루트 비밀번호를 찾을 수 없습니다. 어떻게 하나요?

/var/log/mysqld.log에서 ‘temporary’ 키워드를 grep하여 임시 비밀번호가 기록된 줄을 찾아보세요. 로그에 없다면 mysqld 로그 전체를 확인하거나 mysqld를 재시작해 초기화 상황을 재확인하세요.

설치 후 원격에서 접속하려면 어떻게 해야 하나요?

my.cnf의 bind-address 설정을 변경하거나 사용자 권한을 호스트별로 허용해야 합니다. 또한 네트워크 방화벽과 보안 그룹에서 포트 3306을 열어야 합니다. 보안상 꼭 TLS와 IP 제한을 구성하세요.

참고

공식 문서: https://dev.mysql.com/doc/refman/5.7/en/linux-installation.html

요약

MySQL 5.7을 CentOS 7 및 Ubuntu 16.04에 설치하려면 저장소 추가, 패키지 설치, 서비스 시작 및 자동시작 등록, 루트 비밀번호 설정, 테스트 사용자/데이터베이스 생성을 차례로 진행하면 됩니다. 설치 후에는 mysql_secure_installation을 실행하고 포트 노출을 최소화하는 등 보안 설정을 반드시 적용하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Windows 시작 프로그램이 실행되지 않을 때 해결법
Windows

Windows 시작 프로그램이 실행되지 않을 때 해결법

안드로이드·iOS 사전설치 앱 안전 제거 가이드
모바일 팁

안드로이드·iOS 사전설치 앱 안전 제거 가이드

Dev Error 6068 해결: Warzone 충돌 완전 가이드
게임

Dev Error 6068 해결: Warzone 충돌 완전 가이드

Windows에서 PowerShell 버전 확인하기
시스템 관리

Windows에서 PowerShell 버전 확인하기

Microsoft Edge에서 확장 수동 설치 가이드
브라우저 가이드

Microsoft Edge에서 확장 수동 설치 가이드

Ubuntu 16.04에 OsTicket 설치 가이드
튜토리얼

Ubuntu 16.04에 OsTicket 설치 가이드