Ubuntu에서 MySQL 설치 가이드 | 초기 설정부터 기본 조작까지 완전 해설

1. Ubuntu에서 MySQL을 설치하는 목적과 장점

Ubuntu 환경에 MySQL을 도입하면 업무 애플리케이션 및 웹 애플리케이션의 데이터를 효율적으로 관리할 수 있게 됩니다. MySQL은 가볍고 빠르며, 많은 시스템과 호환성이 있어 엔지니어와 기업에서 널리 사용됩니다. 이 기사에서는 MySQL 설치 절차부터 기본적인 사용 방법, 유지보수 및 트러블슈팅까지 포괄적으로 설명합니다.

2. 설치 준비: Ubuntu 환경 정비

MySQL 설치에 앞서 Ubuntu 시스템의 패키지를 최신 상태로 유지합니다. 이를 통해 설치 작업 중 오류 발생 위험이 감소합니다.

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

먼저, 아래 명령을 사용하여 시스템 패키지를 최신 상태로 업데이트합니다。
sudo apt update
sudo apt upgrade
이 명령들로 기존 패키지가 최신화되어 호환성이 향상됩니다。

2-2. 의존 관계 확인

MySQL은 많은 시스템 의존 패키지가 필요합니다. 의존 관계를 확인해 두면 설치 중 문제를 회피할 수 있습니다. 필요에 따라 아래 명령으로 관련 패키지를 확인하십시오。
sudo apt install -f

3. MySQL 설치 절차

mysql-server 패키지를 설치하고 MySQL을 Ubuntu에 도입합니다. 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 초기 설정 및 보안 강화

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

4-1. mysql_secure_installation 실행

다음 명령을 실행하여 보안 설정을 수행합니다。
sudo mysql_secure_installation
스크립트를 실행하면, 아래 항목에 대한 설정을 요청받습니다。
  • 비밀번호 정책:비밀번호 강도(낮음, 중간, 높음)를 설정하여 보안을 향상시킵니다。
  • 익명 사용자 삭제:기본 익명 사용자를 삭제합니다。
  • 테스트 데이터베이스 삭제:테스트 데이터베이스를 삭제하여 보안 위험을 줄입니다。
  • 원격 접근 제한:root 사용자의 원격 로그인을 제한합니다。

4-2. 보안 설정 권장

각 프롬프트에 대해 “Y”를 입력하여 보안 권장 설정을 활성화하는 것이 일반적입니다. 특히 비밀번호 정책은 “중” 또는 “높음”으로 설정하고, 원격 접근 제한도 적극 적용하는 것을 권장합니다。

5. MySQL 연결 및 사용자 관리

MySQL에 연결하고 초기 설정 및 사용자 관리를 수행합니다.

5-1. MySQL 셸에 연결

root 사용자로 MySQL을 조작하려면, 아래 명령으로 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 '강력한 비밀번호';
FLUSH PRIVILEGES;

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

MySQL의 기본 작업을 이해함으로써 효율적으로 데이터베이스를 관리할 수 있게 됩니다. 여기서는 데이터베이스와 테이블의 생성 방법을 소개합니다.

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

데이터베이스 생성에는 다음 명령을 사용합니다.
CREATE DATABASE 데이터베이스명;
USE 데이터베이스명;
다음으로, 테이블을 생성합니다. 예를 들어, 사용자 정보를 관리하는 테이블을 만들려면 다음과 같이 작성합니다.
CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100)
);

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

테이블에 데이터를 삽입하고 내용을 표시하려면 다음 명령을 사용합니다.
INSERT INTO users (name, email) VALUES ('야마다 타로', 'taro@example.com');
SELECT * FROM users;

7. 정기적인 유지보수와 백업

MySQL을 적절히 운영하기 위해서는 데이터베이스 백업 및 유지보수가 필수입니다.

7-1. 백업 생성

정기적인 백업은 데이터의 안전을 유지하기 위해 중요합니다. 아래 mysqldump 명령으로 백업을 생성합니다。
mysqldump -u root -p 데이터베이스명 > backup.sql

7-2. 성능 최적화

MySQL의 성능을 유지하기 위해 정기적으로 테이블을 최적화합니다。
OPTIMIZE TABLE 테이블명;

7-3. FAQ

  • mysql_secure_installation 스크립트에서 권장 설정 외의 선택지가 나타난 경우 「원격 접근 제한」을 적용하지 않고 root 사용자로 네트워크 연결하는 경우는 보안을 고려하여 개별 설정이 필요합니다。

8. 트러블슈팅 및 지원 리소스

MySQL 사용 중 문제가 발생한 경우, 아래 방법으로 진단하고 적절히 대처합니다.

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

MySQL 서비스가 정상적으로 동작하는지 확인하기 위해, 아래 명령을 사용합니다. 필요에 따라 재시작도 가능합니다.
sudo systemctl status mysql
sudo systemctl restart mysql

8-2. 오류 로그 확인

MySQL 오류 로그를 확인함으로써, 문제의 원인을 파악할 수 있습니다.
sudo cat /var/log/mysql/error.log

8-3. 지원 리소스

공식 문서와 커뮤니티 포럼도 활용하면 좋습니다. 특히 MySQL 공식 페이지와, Stack Overflow와 같은 Q&A 사이트는 많은 트러블슈팅에 도움이 되는 정보가 풍부합니다.

9. 요약

이상으로 Ubuntu에서 MySQL 설치 절차와 운영에 필요한 정보를 정리했습니다. 설치 후 설정 및 보안 강화, 유지 관리 방법을 확실히 수행하면 효율적이고 안전하게 데이터베이스를 관리할 수 있습니다. 앞으로의 단계로는 쿼리 성능 튜닝 및 백업 자동화도 검토해 보시기 바랍니다.

10. 관련 사이트

Pythonプログラミングの世界

Pythonプログラミングの世界へようこそ!初心者から上級者まで、Pythonの基礎から応用、データ分析やWeb開発まで…