MySQL은 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 빠르고 사용하기 쉬우며 확장 가능하며 널리 사용되는 LAMP 및 LEMP 스택의 필수적인 부분입니다.
이 가이드에서는 Ubuntu 20.04에 MySQL을 설치하고 보호하는 방법을 설명합니다.
필수 구성 요소
sudo 권한을 가진 사용자로 로그인했는지 확인합니다.
Ubuntu에 MySQL을 설치
이 문서를 작성할 당시 Ubuntu 리포지토리에서 사용할 수 있는 MySQL의 최신 버전은 MySQL 버전 8.0입니다. 설치하려면 다음 명령을 실행합니다.
sudo apt update
sudo apt install mysql-server
설치가 완료되면 MySQL 서비스가 자동으로 시작됩니다. MySQL 서버가 실행 중인지 확인하려면 다음을 입력합니다.
sudo systemctl status mysql
# ● mysql.service - MySQL Community Server
# Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
# Active: active (running) since Tue 2020-04-28 20:59:52 UTC; 10min ago
# Main PID: 8617 (mysqld)
# Status: "Server is operational"
# ...
MySQL을 보호
MySQL 설치에는 데이터베이스 서버 보안을 쉽게 개선할 수 있는 mysql_secure_installation이라는 스크립트가 함께 제공됩니다.
인수 없이 스크립트를 호출합니다.
sudo mysql_secure_installation
MySQL 사용자의 암호 강도를 테스트하고 보안을 향상시키는 데 사용되는 VALIDE PASSWORD PLING을 구성하라는 메시지가 표시됩니다.
# Securing the MySQL server deployment.
#
# Connecting to MySQL using a blank password.
#
# VALIDATE PASSWORD COMPONENT can be used to test passwords
# and improve security. It checks the strength of password
# and allows the users to set only those passwords which are
# secure enough. Would you like to setup VALIDATE PASSWORD component?
#
# Press y|Y for Yes, any other key for No: y
암호 유효성 검사 정책에는 낮음, 중간, 강력의 세 가지 수준이 있습니다. 암호 유효성 검사 플러그인 또는 다른 키를 설정하여 다음 단계로 이동하려면 y를 누릅니다.
암호 유효성 검사 정책에는 세 가지 수준이 있습니다.
# There are three levels of password validation policy:
#
# LOW Length >= 8
# MEDIUM Length >= 8, numeric, mixed case, and special characters
# STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
#
# Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
다음 프롬프트에서 MySQL 루트 사용자의 암호를 설정하라는 메시지가 표시됩니다.
여기서 루트의 암호를 설정하십시오.
# Please set the password for root here.
#
#
# New password:
#
# Re-enter new password:
암호 유효성 검사 플러그인을 설정하면 스크립트에 새 암호의 강도가 표시됩니다. y를 입력하여 암호를 확인합니다.
# Estimated strength of the password: 50
# Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
그런 다음 익명 사용자를 제거하고, 로컬 컴퓨터에 대한 루트 사용자 액세스를 제한하고, 테스트 데이터베이스를 제거하고, 권한 테이블을 다시 로드하라는 메시지가 표시됩니다. 당신은 모든 질문에 y라고 대답해야 합니다.
루트로 로그인
명령줄에서 MySQL 서버와 상호 작용하려면 MySQL 서버 패키지의 종속성으로 설치된 MySQL 클라이언트 유틸리티를 사용합니다.
MySQL 8.0에서는 기본적으로 auth_socket 플러그인에 의해 루트 사용자가 인증됩니다.
auth_socket 플러그인은 로컬 호스트에서 Unix 소켓 파일을 통해 연결하는 사용자를 인증합니다. 이것은 비밀번호를 제공하여 루트로 인증할 수 없음을 의미합니다.
루트 사용자로 MySQL 서버에 로그인하려면 다음을 입력합니다.
sudo mysql
# Welcome to the MySQL monitor. Commands end with ; or \g.
# Your MySQL connection id is 12
# Server version: 8.0.19-0ubuntu5 (Ubuntu)
#
# Copyright (c) 2000, 2020, 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.
#
# Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
#
# mysql>
phpMyAdmin과 같은 외부 프로그램을 사용하여 MySQL 서버에 루트로 로그인하려는 경우 두 가지 옵션이 있습니다.
첫 번째 방법은 인증 방법을 auth_socket에서 mysql_native_password로 변경하는 것입니다. 이 작업은 다음 명령을 실행하여 수행할 수 있습니다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;
두 번째 권장 선택사항은 모든 데이터베이스에 대한 접근 권한을 가진 새로운 전용 관리 사용자를 작성하는 것입니다.
GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';
Ubuntu 20.04에 MySQL을 설치하는 방법을 보여드렸습니다. 데이터베이스 서버가 가동되고 실행되었으므로 다음 단계는 MySQL 사용자 계정 및 데이터베이스를 관리하는 방법을 배우는 것입니다.
참조
https://linuxize.com/post/how-to-install-mysql-on-ubuntu-20-04/
'SW > 리눅스' 카테고리의 다른 글
Ubuntu 20.04 : Go 설치 방법, 예제, 명령어 (0) | 2022.09.04 |
---|---|
Linux : Ubuntu 20.04 : Git 설치 방법, 예제, 명령어 (0) | 2022.09.03 |
Linux : Ubuntu 20.04 : Python Pip 설치 방법, 예제, 명령어 (0) | 2022.09.01 |
Linux : Raspberry Pi : Ubuntu 설치 방법, 예제, 명령어 (1) | 2022.08.31 |
Linux : Ubuntu 20.04 : Java 설치 방법, 예제, 명령어 (0) | 2022.08.30 |