Ubuntu 16.04에 MySQL을 설치하는 방법
소개
LAMP(Linux, Apache, MySQL, PHP/Python/Perl) 스택. 관계형 데이터베이스와 SQL(Structured Query Language)을 사용하여 데이터를 관리합니다.
짧은 버전의 설치는 간단합니다. 패키지 인덱스를 업데이트하고 mysql-server
패키지를 설치한 다음 포함된 보안 스크립트를 실행합니다.
- sudo apt-get update
- sudo apt-get install mysql-server
- 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
을 사용하여 기본 패키지를 설치하면 됩니다.
- sudo apt-get update
- sudo apt-get install mysql-server
설치 중에 루트 암호를 생성하라는 메시지가 표시됩니다. 안전한 것을 선택하고 나중에 필요하므로 기억해두십시오. 다음으로 MySQL 구성을 마칩니다.
2단계 - MySQL 구성
새로 설치하려면 포함된 보안 스크립트를 실행해야 합니다. 이렇게 하면 원격 루트 로그인 및 샘플 사용자와 같은 보안 수준이 낮은 일부 기본 옵션이 변경됩니다. 이전 버전의 MySQL에서는 데이터 디렉터리도 수동으로 초기화해야 했지만 이제는 자동으로 수행됩니다.
보안 스크립트를 실행합니다.
- 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은 자동으로 실행되기 시작해야 합니다. 이를 테스트하려면 상태를 확인하십시오.
- 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
) 버전을 반환하도록 지시합니다.
- 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 명령에 대해 자세히 알아보기