| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- JDBC TEMPLATE
- spring aop
- Di
- java
- STS
- JdbcTemplate
- Spring JDBC
- Dependency Injection
- Linux
- 마이바티스
- 프로퍼티
- AOP
- Framework
- @AspectJ
- unix
- Ubunt
- @JUnit
- pointcut
- POJO
- myBatis
- 리눅스
- SpringJDBC
- java spring
- Spring Boot
- spring framework
- @test
- 컨테이너
- @Spring-Test
- spring
- XML
- Today
- Total
개키우는개발자 : )
MySQL 설치 Linux Ubuntu (2026년 최신) - APT로 설치하고 원격 접속까지 본문
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
원격 접속 안됨
- bind-address 확인
- 방화벽 확인
- 사용자 권한 확인
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로 간단하게 끝난다. 서버 운영 시에는 원격 접속 설정과 보안에 신경 쓰자.
시리즈 링크
- MySQL 설치 Windows 11
- MySQL 설치 macOS
- MySQL 설치 Linux Ubuntu (현재 글)
'MySQL' 카테고리의 다른 글
| MySQL 설치 macOS (2026년 최신) - Homebrew로 5분만에 설치하기 (0) | 2026.01.19 |
|---|---|
| MySQL 설치 Windows 11 (2026년 최신) - 다운로드부터 환경변수 설정까지 (0) | 2026.01.19 |
| MySQL 환경변수 설정(Windows10) (29) | 2019.02.08 |
| MySQL 8.0.15 다운로드 및 설치방법 (Windows 10) (60) | 2019.02.08 |