LEMP stack/MySql

Ubuntu에서 최신 MySQL 설치하고 보안 설정하는 법 (2025년 기준)

itsdev 2025. 4. 19. 02:47

MySQL은 웹 개발이나 서비스 운영할 때 거의 기본으로 쓰는 데이터베이스이다. 그런데 Ubuntu에 기본으로 설치하면 구버전이 설치되는 경우가 많아서, 공식 저장소를 따로 등록해서 최신 버전으로 설치하는 것이 좋다.

📌 1단계: 시스템 업데이트 & 필수 도구 설치

먼저 시스템을 최신 상태로 만들고, 저장소 등록에 필요한 도구들을 설치한다.

sudo apt update && sudo apt upgrade -y
sudo apt install wget lsb-release gnupg -y

📌 2단계: MySQL APT 저장소 설치 파일 다운로드

공식 MySQL 저장소 등록용 .deb 파일을 다운로드한다.

wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb

📌 3단계: 저장소 등록

다운받은 파일을 설치하면, 텍스트 기반의 설정 메뉴가 나온다.

sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb

 

여기서 MySQL Server & Cluster 버전 선택 항목이 나올 텐데, 최신 버전이 자동으로 선택되어 있을 것이다. 그냥 OK 누르면 된다.
(실수했어도 나중에 다시 설정 가능하다: sudo dpkg-reconfigure mysql-apt-config)

 

텍스트 기반의 설정 메뉴 - 그냥 OK 클릭
OK 클릭으로 진행

📌 4단계: 저장소 등록 후 패키지 목록 갱신

sudo apt update

 

이제 새로운 저장소가 등록됐으니 최신 버전 정보로 업데이트된다.

📌 5단계: 최신 MySQL 설치

sudo apt install mysql-server -y

 

자동으로 최신 버전이 설치되고, mysqld 서비스도 자동으로 시작된다.

서비스 상태는 다음 명령어로 확인할 수 있다.

sudo systemctl status mysql

Mysql 설치 정상 여부 확인
mysql - active

📌 6단계: 보안 설정

MySQL 설치 후 꼭 해줘야 하는 작업이다. 아래 명령어를 실행한다.

sudo mysql_secure_installation

 

설정 항목별 추천 응답은 다음과 같다.

mysql 보안 설정 질의 응답
sudo mysql_secure_installation

항목설명추천 입력

Validate Password Plugin 비밀번호 강도 검사 기능 y
New root password 루트 비밀번호 설정 복잡한 비밀번호 입력
Remove anonymous users 익명 사용자 제거 y
Disallow root login remotely 원격 root 로그인 차단 y
Remove test database 테스트 DB 제거 y
Reload privileges 변경 사항 적용 y

 

📌 7단계: MySQL 접속 및 버전 확인

mysql -u root -p

 

로그인 후 버전 확인:

SELECT VERSION();

 

결과가 출력되면 설치가 잘 된 것이다.

exit;

MySql 접속 및 버전 확인
MySql 버전

📌 8단계: 사용자 및 DB 생성

8-1 원하는 사용자와 데이터베이스를 만들고 권한을 부여한다.

CREATE DATABASE myapp_db;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

 

8-2. 외부 접속 가능한 사용자 생성 또는 권한 수정

✅ 옵션 A: 새 사용자 생성 (권장)

CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
 

✅ 옵션 B: 기존 사용자 (root)의 접근 허용 변경

-- 이미 root@localhost만 있는 경우 root@% 추가
CREATE USER 'root'@'%' IDENTIFIED BY 'your_root_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
%는 모든 IP 허용을 의미하며, 특정 IP로 제한하고 싶다면 '127.000.000.1' 처럼 구체적으로 지정할 수 있다.
 

✅ 정리

  • mysql-apt-config 설치로 최신 저장소를 등록한다.
  • mysql-server 설치 시 최신 안정 버전이 자동 설치된다.
  • mysql_secure_installation 으로 보안을 강화한다.
  • 원한다면 사용자와 DB도 추가로 설정할 수 있다.
728x90
반응형
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.