반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

MySQL 설치 Linux Ubuntu (2026년 최신) - APT로 설치하고 원격 접속까지 본문

MySQL

MySQL 설치 Linux Ubuntu (2026년 최신) - APT로 설치하고 원격 접속까지

DOGvelopers 2026. 1. 19. 21:17
반응형

Ubuntu에서 MySQL 설치하는 방법을 정리한다. APT 패키지 매니저로 쉽게 설치할 수 있다. 서버 운영을 고려해서 원격 접속 설정까지 다룬다.

지원 Ubuntu 버전

Ubuntu 버전 지원 MySQL

24.04 LTS MySQL 8.0, 8.4
22.04 LTS MySQL 8.0, 8.4
20.04 LTS MySQL 8.0

이 글은 Ubuntu 22.04 / 24.04 기준으로 작성했다.

설치 방법 선택

방법 장점 단점

APT 기본 저장소 간편함 최신 버전 아닐 수 있음
MySQL APT Repository 최신 버전 저장소 추가 필요

이 글에서는 둘 다 설명한다.

방법 1: APT 기본 저장소로 설치

가장 간단한 방법이다. Ubuntu 기본 저장소의 MySQL을 설치한다.

1-1. 패키지 목록 업데이트

sudo apt update

1-2. MySQL Server 설치

sudo apt install mysql-server -y

설치 중 root 비밀번호를 묻지 않는다. 설치 후 별도로 설정한다.

1-3. 설치 확인

mysql --version
mysql  Ver 8.0.xx-0ubuntu0.24.04.1 for Linux on x86_64 ((Ubuntu))

1-4. 서비스 상태 확인

sudo systemctl status mysql

active (running) 상태면 정상

방법 2: MySQL 공식 APT Repository로 설치

최신 8.4 LTS나 9.x를 설치하려면 공식 저장소를 추가한다.

2-1. MySQL APT Repository 다운로드

cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb

버전 번호는 변경될 수 있다. 공식 사이트에서 최신 버전 확인

https://dev.mysql.com/downloads/repo/apt/

2-2. Repository 설치

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

설치 중 버전 선택 화면이 나온다.

Which MySQL product do you wish to configure?
  MySQL Server & Cluster (Currently selected: mysql-8.4-lts)
  MySQL Tools & Connectors (Currently selected: Enabled)
  MySQL Preview Packages (Currently selected: Disabled)
  Ok

mysql-8.4-lts 선택 후 Ok

2-3. 패키지 목록 업데이트

sudo apt update

2-4. MySQL 설치

sudo apt install mysql-server -y

설치 중 root 비밀번호 입력 화면이 나온다.

Enter root password: ********
Re-enter root password: ********

2-5. 인증 방식 선택

Use Strong Password Encryption (RECOMMENDED)
Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)

신규 설치면 Strong Password 선택

초기 보안 설정

방법 1로 설치했다면 root 비밀번호가 없다. 보안 설정 스크립트를 실행한다.

sudo mysql_secure_installation

설정 과정

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT 설치?
Press y|Y for Yes, any other key for No: y

Please set the password strength level:
0 = LOW    (길이 8자 이상)
1 = MEDIUM (숫자, 대소문자, 특수문자 포함)
2 = STRONG (사전 단어 금지)
Enter 0, 1 or 2: 1

New password: ********
Re-enter new password: ********

Remove anonymous users? y
Disallow root login remotely? y
Remove test database? y
Reload privilege tables? y

MySQL 접속

방법 1로 설치한 경우

Ubuntu에서 APT로 설치하면 root가 auth_socket 인증을 사용한다. sudo로 접속해야 한다.

sudo mysql

비밀번호 없이 바로 접속된다.

방법 2로 설치한 경우

설치 중 설정한 비밀번호로 접속

mysql -u root -p
Enter password: ********

접속 확인

SELECT VERSION();
SELECT USER();
SHOW DATABASES;

root 인증 방식 변경 (선택)

auth_socket 대신 비밀번호 인증으로 변경하려면

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '새비밀번호';
FLUSH PRIVILEGES;
EXIT;

이후 일반 로그인 가능

mysql -u root -p

원격 접속 허용

서버에서 외부 접속을 허용하려면 추가 설정이 필요하다.

1. MySQL 설정 파일 수정

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address 찾아서 수정

# 기본값 (로컬만 접속 가능)
bind-address = 127.0.0.1

# 모든 IP에서 접속 허용
bind-address = 0.0.0.0

저장 후 종료 (Ctrl+O, Enter, Ctrl+X)

2. MySQL 재시작

sudo systemctl restart mysql

3. 원격 접속용 사용자 생성

root는 원격 접속 차단하고 별도 사용자를 만드는 게 안전하다.

sudo mysql
-- 사용자 생성 (모든 IP에서 접속 가능)
CREATE USER 'myuser'@'%' IDENTIFIED BY '비밀번호';

-- 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%';
FLUSH PRIVILEGES;

-- 특정 IP만 허용하려면
CREATE USER 'myuser'@'192.168.1.%' IDENTIFIED BY '비밀번호';

4. 방화벽 설정

# UFW 사용 시
sudo ufw allow 3306/tcp
sudo ufw reload

# firewalld 사용 시
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

5. 원격 접속 테스트

다른 PC에서

mysql -h [서버IP] -u myuser -p

서비스 관리

# 상태 확인
sudo systemctl status mysql

# 시작
sudo systemctl start mysql

# 중지
sudo systemctl stop mysql

# 재시작
sudo systemctl restart mysql

# 부팅 시 자동 시작 활성화
sudo systemctl enable mysql

# 부팅 시 자동 시작 비활성화
sudo systemctl disable mysql

주요 파일 위치

항목 경로

설정 파일 /etc/mysql/mysql.conf.d/mysqld.cnf
데이터 디렉토리 /var/lib/mysql
로그 파일 /var/log/mysql/error.log
소켓 파일 /var/run/mysqld/mysqld.sock

자주 발생하는 문제

Access denied for user 'root'@'localhost'

Ubuntu APT 설치 시 auth_socket 인증이 기본이다.

# sudo로 접속
sudo mysql

# 또는 인증 방식 변경
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '비밀번호';

Can't connect to MySQL server

서비스가 실행 중인지 확인

sudo systemctl status mysql
sudo systemctl start mysql

원격 접속 안됨

  1. bind-address 확인
  2. 방화벽 확인
  3. 사용자 권한 확인
SELECT user, host FROM mysql.user;

host가 'localhost'면 원격 접속 불가 '%' 또는 특정 IP가 있어야 함

패키지 충돌

MariaDB가 이미 설치되어 있으면 충돌한다.

# MariaDB 제거
sudo apt remove mariadb-server mariadb-client
sudo apt autoremove

# MySQL 설치
sudo apt install mysql-server

완전 삭제 (재설치 시)

# 서비스 중지
sudo systemctl stop mysql

# 패키지 삭제
sudo apt remove --purge mysql-server mysql-client mysql-common
sudo apt autoremove

# 데이터 디렉토리 삭제
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql

# 잔여 설정 삭제
sudo apt clean

정리

단계 명령어

설치 (기본) sudo apt install mysql-server
보안 설정 sudo mysql_secure_installation
접속 sudo mysql 또는 mysql -u root -p
원격 허용 bind-address 수정 + 사용자 생성

Ubuntu에서 MySQL 설치는 APT로 간단하게 끝난다. 서버 운영 시에는 원격 접속 설정과 보안에 신경 쓰자.


시리즈 링크

반응형
Comments