웹사이트 검색

Ubuntu 16.04에 MySQL을 설치하는 방법


소개

LAMP(Linux, Apache, MySQL, PHP/Python/Perl) 스택. 관계형 데이터베이스와 SQL(Structured Query Language)을 사용하여 데이터를 관리합니다.

짧은 버전의 설치는 간단합니다. 패키지 인덱스를 업데이트하고 mysql-server 패키지를 설치한 다음 포함된 보안 스크립트를 실행합니다.

  1. sudo apt-get update
  2. sudo apt-get install mysql-server
  3. mysql_secure_installation

이 튜토리얼에서는 Ubuntu 16.04 서버에 MySQL 버전 5.7을 설치하는 방법을 설명합니다. 그러나 기존 MySQL 설치를 버전 5.7로 업데이트하려는 경우 대신 이 MySQL 5.7 업데이트 가이드를 읽을 수 있습니다.

전제 조건

이 자습서를 따르려면 다음이 필요합니다.

  • 루트가 아닌 sudo 사용자 및 방화벽을 포함하여 이 초기 서버 설정 가이드에 따라 설정된 Ubuntu 16.04 서버 1대

1단계 - MySQL 설치

Ubuntu 16.04에서는 기본적으로 최신 버전의 MySQL만 APT 패키지 리포지토리에 포함됩니다. 작성 당시에는 MySQL 5.7이었습니다.

설치하려면 서버에서 패키지 색인을 업데이트하고 apt-get을 사용하여 기본 패키지를 설치하면 됩니다.

  1. sudo apt-get update
  2. sudo apt-get install mysql-server

설치 중에 루트 암호를 생성하라는 메시지가 표시됩니다. 안전한 것을 선택하고 나중에 필요하므로 기억해두십시오. 다음으로 MySQL 구성을 마칩니다.

2단계 - MySQL 구성

새로 설치하려면 포함된 보안 스크립트를 실행해야 합니다. 이렇게 하면 원격 루트 로그인 및 샘플 사용자와 같은 보안 수준이 낮은 일부 기본 옵션이 변경됩니다. 이전 버전의 MySQL에서는 데이터 디렉터리도 수동으로 초기화해야 했지만 이제는 자동으로 수행됩니다.

보안 스크립트를 실행합니다.

  1. mysql_secure_installation

이렇게 하면 1단계에서 생성한 루트 암호를 입력하라는 메시지가 표시됩니다. Y를 누른 다음 ENTER를 눌러 다음 질문을 제외한 모든 후속 질문에 대해 기본값을 수락할 수 있습니다. 루트 암호를 변경할 것인지 묻는 메시지입니다. 1단계에서 설정했으므로 지금 변경할 필요가 없습니다. 이러한 옵션에 대한 자세한 연습을 보려면 LAMP 설치 자습서의 이 단계를 참조하십시오.

MySQL 데이터 디렉터리를 초기화하려면 5.7.6 이전 버전의 경우 mysql_install_db를 사용하고 5.7.6 이상 버전의 경우 mysqld --initialize를 사용합니다. 그러나 1단계와 같이 Debian 배포판에서 MySQL을 설치한 경우 데이터 디렉터리가 자동으로 초기화됩니다. 당신은 아무것도 할 필요가 없습니다. 그래도 명령을 실행하려고 하면 다음 오류가 표시됩니다.

2016-03-07T20:11:15.998193Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.

마지막으로 MySQL 설치를 테스트해 보겠습니다.

3단계 - MySQL 테스트

설치 방법에 관계없이 MySQL은 자동으로 실행되기 시작해야 합니다. 이를 테스트하려면 상태를 확인하십시오.

  1. systemctl status mysql.service

다음과 유사한 출력이 표시됩니다.

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en
   Active: active (running) since Wed 2016-11-23 21:21:25 UTC; 30min ago
 Main PID: 3754 (mysqld)
    Tasks: 28
   Memory: 142.3M
      CPU: 1.994s
   CGroup: /system.slice/mysql.service
           └─3754 /usr/sbin/mysqld

MySQL이 실행되고 있지 않으면 sudo systemctl start mysql로 시작할 수 있습니다.

추가 확인을 위해 관리 명령을 실행할 수 있는 클라이언트인 mysqladmin 도구를 사용하여 데이터베이스에 연결을 시도할 수 있습니다. 예를 들어 이 명령은 MySQL에 루트(-u root)로 연결하고 암호를 묻는 메시지를 표시하고(-p) 버전을 반환하도록 지시합니다.

  1. mysqladmin -p -u root version

다음과 유사한 출력이 표시되어야 합니다.

mysqladmin  Ver 8.42 Distrib 5.7.16, for Linux on x86_64
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		5.7.16-0ubuntu0.16.04.1
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/run/mysqld/mysqld.sock
Uptime:			30 min 54 sec

Threads: 1  Questions: 12  Slow queries: 0  Opens: 115  Flush tables: 1  Open tables: 34  Queries per second avg: 0.006

이는 MySQL이 실행 중임을 의미합니다.

결론

이제 서버에 기본 MySQL 설정이 설치되었습니다. 다음은 수행할 수 있는 다음 단계의 몇 가지 예입니다.

  • 일부 추가 보안 조치 구현
  • 데이터 디렉토리 재배치
  • SaltStack으로 MySQL 서버 관리
  • MySQL 명령에 대해 자세히 알아보기