Ubuntu에 MySQL 설치 및 보안 설정 방법: 설정, 사용자 관리 및 유지보수를 위한 완전 가이드

1. Ubuntu에 MySQL을 설치하는 목적 및 이점

Ubuntu 환경에 MySQL을 설치하면 비즈니스 및 웹 애플리케이션의 데이터를 효율적으로 관리할 수 있습니다. MySQL은 가볍고 빠르며 다양한 시스템과 호환되어 엔지니어와 기업 사이에서 널리 사용됩니다. 이 문서에서는 MySQL 설치부터 기본 운영, 유지보수, 문제 해결까지 포괄적인 가이드를 제공합니다.

2. Ubuntu 환경 준비

MySQL을 설치하기 전에 Ubuntu 시스템의 패키지 목록을 최신 상태로 유지하십시오. 이렇게 하면 설치 중 오류 발생 위험을 줄일 수 있습니다.

2-1. 시스템 패키지 업데이트 및 업그레이드

시스템 패키지를 최신 버전으로 업데이트하려면 다음 명령을 실행하십시오:

sudo apt update
sudo apt upgrade

업데이트를 수행하면 기존 패키지가 MySQL 설치와 호환되도록 보장됩니다.

2-2. 의존성 확인

MySQL은 여러 종속 패키지가 필요합니다. 사전에 의존성을 확인하면 설치 문제를 예방할 수 있습니다. 필요에 따라 아래 명령을 사용해 필수 패키지를 확인하고 설치하십시오:

sudo apt install -f

3. MySQL 설치 단계

mysql-server 패키지를 설치하여 Ubuntu에 MySQL을 설정합니다. MySQL 서비스가 정상적으로 실행되는지 확인하십시오.

3-1. MySQL 설치

다음 명령을 실행하면 MySQL을 자동으로 다운로드하고 설치합니다:

sudo apt install mysql-server

3-2. MySQL 서비스 확인 및 자동 시작 활성화

설치 후 MySQL 서비스가 실행 중인지 확인하십시오:

sudo systemctl status mysql

상태가 active (running) 으로 표시되면 설치가 성공한 것입니다. 시스템 부팅 시 MySQL이 자동으로 시작되도록 하려면 다음을 실행하십시오:

sudo systemctl enable mysql

4. 초기 설정 및 보안 강화

설치 후 mysql_secure_installation 스크립트를 사용해 MySQL 보안 설정을 강화합니다.

4-1. mysql_secure_installation 실행

보안 설정을 구성하려면 다음 명령을 실행하십시오:

sudo mysql_secure_installation

스크립트는 다음과 같은 설정을 묻습니다:

  • 비밀번호 정책 : 보안을 강화하기 위해 비밀번호 강도(낮음, 중간, 높음)를 설정합니다.
  • 익명 사용자 제거 : 기본 익명 사용자를 삭제합니다.
  • 테스트 데이터베이스 제거 : 보안 위험을 줄이기 위해 테스트 데이터베이스를 삭제합니다.
  • 원격 접근 제한 : root 사용자의 원격 로그인을 비활성화합니다.

4-2. 권장 보안 설정

대부분의 경우 각 프롬프트에 Y 를 입력하는 것이 권장됩니다. 비밀번호 정책은 medium 또는 high 로 설정하고 원격 접근을 제한하여 보안을 더욱 강화하십시오.

5. MySQL 연결 및 사용자 관리

MySQL에 연결하여 초기 설정이나 사용자 관리 작업을 수행합니다.

5-1. MySQL 셸 접속

root 사용자로 MySQL을 운영하려면 다음 명령을 실행하십시오:

sudo mysql

5-2. 인증 방식 변경 (선택 사항)

MySQL 8.0부터 root 사용자의 기본 인증 방식은 auth_socket 입니다. phpMyAdmin과 같은 외부 도구에서 접근하려면 인증 방식을 mysql_native_password 로 변경하십시오:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'StrongPassword';
FLUSH PRIVILEGES;

6. 기본 데이터베이스 및 테이블 작업

기본 MySQL 작업을 이해하면 데이터베이스를 보다 효율적으로 관리할 수 있습니다. 아래는 데이터베이스와 테이블을 생성하는 필수 단계입니다.

6-1. 데이터베이스 및 테이블 생성

다음 명령을 사용해 데이터베이스를 생성합니다:

CREATE DATABASE database_name;
USE database_name;

다음으로 테이블을 생성합니다. 예를 들어 사용자 정보를 관리하려면:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100)
);

6-2. 데이터 삽입 및 표시

아래 명령을 사용해 데이터를 삽입하고 테이블 내용을 표시합니다:

INSERT INTO users (name, email) VALUES ('Taro Yamada', 'taro@example.com');
SELECT * FROM users;

7. 정기 유지보수 및 백업

MySQL을 정상적으로 운영하려면 정기적인 백업과 유지보수가 필요합니다.

7-1. 백업 생성

데이터 보호를 위해 정기적인 백업이 필수입니다. mysqldump를 다음과 같이 사용하십시오:

mysqldump -u root -p database_name > backup.sql

7-2. 성능 최적화

성능 유지를 위해 데이터베이스 테이블을 주기적으로 최적화하십시오:

OPTIMIZE TABLE table_name;

7-3. FAQ

  • mysql_secure_installation 실행 중 추가 옵션이 표시되는 경우 “원격 접근 제한”을 적용하지 않고 루트 접근을 허용하려면, 직접 보안 조치를 구성하십시오.

8. 문제 해결 및 지원 자료

MySQL 사용 중 문제가 발생하면 다음 방법을 통해 진단하고 해결할 수 있습니다.

8-1. 서비스 상태 확인 및 재시작

아래 명령을 사용해 MySQL 서비스 상태를 확인하거나 필요 시 재시작하십시오:

sudo systemctl status mysql
sudo systemctl restart mysql

8-2. 오류 로그 확인

오류 로그를 검토하면 문제 원인을 파악하는 데 도움이 됩니다:

sudo cat /var/log/mysql/error.log

8-3. 지원 자료

공식 문서와 커뮤니티 포럼을 참고하십시오. 공식 MySQL 웹사이트와 Stack Overflow와 같은 Q&A 사이트에는 유용한 문제 해결 정보가 포함되어 있습니다.

9. 요약

이 가이드는 Ubuntu에서 MySQL 설치 및 필수 설정 절차를 다루었습니다. 보안을 설정하고, 유지보수를 수행하며, 백업을 적절히 관리함으로써 MySQL을 효율적이고 안전하게 운영할 수 있습니다. 다음 단계로는 백업 자동화와 쿼리 성능 최적화를 고려해 보시기 바랍니다.

侍エンジニア塾