SW/리눅스

Debian 9 : MySQL 설치하는 방법, 예제, 명령어

얇은생각 2020. 12. 2. 07:30
반응형

Debian 9 MySQL이 출시됨에 따라 세계에서 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템은 Debian의 리포지토리에서 더 이상 사용할 수 없으며 MariaDB는 기본 데이터베이스 시스템이 되었습니다. MariaDB MySQL의 이전 버전과 호환되는 바이너리 드롭인 대체품입니다.

이 튜토리얼에서는 MySQL Apt Repository Debian 9 시스템에 MySQL을 설치하고 보호하는 방법을 보여드리겠습니다. 응용 프로그램에 특정 요구 사항이 없는 경우 Debian 9의 기본 데이터베이스 시스템인 MariaDB를 사용해야 합니다.

 

Debian 9 : MySQL 설치하는 방법, 예제, 명령어

 

필수 구성 요소

이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인합니다.

 

 

 

1단계: MySQL Repository 구성

MySQL APT 저장소를 시스템에 추가하려면 리포지토리 다운로드 페이지로 이동하여 다음 wget 명령을 사용하여 최신 릴리스 패키지를 다운로드합니다.

wget http://repo.mysql.com/mysql-apt-config_0.8.10-1_all.deb

 

다운로드가 완료되면 다음 명령을 사용하여 릴리스 패키지를 설치합니다.

sudo apt install ./mysql-apt-config_0.8.10-1_all.deb

 

 

설치할 MySQL 버전을 선택할 수 있는 구성 메뉴가 표시됩니다.

MySQL 8.0이 미리 선택되어 있습니다. 다른 버전의 MySQL을 설치하려면 MySQL Server & Cluster(현재 선택됨: Mysql-8.0)를 선택하고 원하는 MySQL 버전을 선택하십시오.

MySQL 버전 8.0을 설치합니다. 마지막 옵션 OK(확인)를 선택하고 Enter(위 이미지)를 눌러 구성을 저장합니다.

이 기사를 작성할 때 최신 버전의 MySQL은 버전 8.0입니다. 어떤 버전을 선택해야 할지 잘 모를 경우 서버에 배포할 응용프로그램의 설명서를 참조합니다.

 

 

 

2단계: MySQL 설치

Debian 9 서버에 MySQL을 설치하기 전에 먼저 다음을 사용하여 패키지 목록을 업데이트합니다.

sudo apt update

 

패키지 목록이 업데이트되면 다음 명령을 실행하여 Debian 서버에 MySQL을 설치합니다.

sudo apt install mysql-server

 

설치 관리자가 MySQL 루트 암호를 설정할지 묻습니다. 지금 암호를 설정하지 마십시오(공백으로 둠). 다음 섹션에서 암호를 설정합니다.

그런 다음 새로운 MySQL 8 인증에 대해 알리는 메시지가 표시됩니다. 기본 MySQL 8 인증 플러그인을 선택하기 전에 응용 프로그램에서 지원되는지 확인합니다.

 

 

 

3단계: MySQL 설치 확인

설치가 완료되면 MySQL 서비스가 자동으로 시작됩니다.

다음을 입력하여 MySQL 서비스 상태를 확인할 수 있습니다.

sudo systemctl status mysql

# ● mysql.service - MySQL Community Server
#    Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: 
#    Active: active (running) since Thu 2018-08-02 17:22:18 UTC; 18s ago
#      Docs: man:mysqld(8)
#            http://dev.mysql.com/doc/refman/en/using-systemd.html
#   Process: 14797 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (co
#  Main PID: 14832 (mysqld)
#    Status: "SERVER_OPERATING"
#     Tasks: 37 (limit: 4915)
#    CGroup: /system.slice/mysql.service
#            └─14832 /usr/sbin/mysqld

 

 

 

4단계: MySQL을 보호

mysql_secure_installation 명령을 실행하여 루트 암호를 설정하고 MySQL 설치의 보안을 향상시킵니다.

sudo mysql_secure_installation

# 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:

 

MySQL 사용자 암호의 강도를 테스트하는 데 사용되는 PASSWORDECT PUGING을 구성하라는 메시지가 표시됩니다. 암호 유효성 검사 정책에는 낮음, 중간 및 높음 세 가지 수준이 있습니다. 암호 유효성 검사 플러그인을 설정하지 않으려면 ENTER를 누릅니다.

# Please set the password for root here.
# 
# New password:
# 
# Re-enter new password:

 

다음 프롬프트에서 MySQL 루트 사용자의 암호를 설정하라는 메시지가 표시됩니다.

# By default, a MySQL installation has an anonymous user,
# allowing anyone to log into MySQL without having to have
# a user account created for them. This is intended only for
# testing, and to make the installation go a bit smoother.
# You should remove them before moving into a production
# environment.
# 
# Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
# Success.
# 
# 
# Normally, root should only be allowed to connect from
# 'localhost'. This ensures that someone cannot guess at
# the root password from the network.
# 
# Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
# Success.
# 
# By default, MySQL comes with a database named 'test' that
# anyone can access. This is also intended only for testing,
# and should be removed before moving into a production
# environment.
# 
# 
# Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
#  - Dropping test database...
# Success.
# 
#  - Removing privileges on test database...
# Success.
# 
# Reloading the privilege tables will ensure that all changes
# made so far will take effect immediately.
# 
# Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
# Success.
# 
# All done!

 

루트 암호를 설정하면 이 스크립트는 익명 사용자를 제거하고 로컬 시스템에 대한 루트 사용자 액세스를 제한하며 테스트 데이터베이스를 제거하라는 메시지도 표시합니다. 모든 질문에 "Y"()라고 대답해야 합니다.

 

 

 

5단계: 명령줄에서 MySQL 연결

터미널을 통해 MySQL과 상호 작용하기 위해 MySQL 서버 패키지의 종속성으로 설치된 MySQL 클라이언트를 사용합니다. 

MySQL 서버에 루트 사용자 유형으로 로그인하려면 다음을 수행합니다.

mysql -u root -p

 

mysql_secure_installation 스크립트를 실행할 때 이전에 설정한 루트 암호를 입력하라는 메시지가 표시됩니다.

# Welcome to the MySQL monitor.  Commands end with ; or \g.
# Your MySQL connection id is 10
# Server version: 8.0.12 MySQL Community Server - GPL
# 
# Copyright (c) 2000, 2018, 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>

 

 

 

데이터베이스 생성

MySQL 셸에 연결되면 다음 명령을 입력하여 새 데이터베이스를 생성할 수 있습니다.

CREATE DATABASE new_database;

# Query OK, 1 row affected (0.00 sec)

 

 

 

테이블 생성

이제 데이터베이스를 만들었으므로 테이블을 만들어 일부 데이터를 저장할 수 있습니다.

테이블을 만들기 위해 SQL 문을 실행하기 전에 데이터베이스에 연결해야 합니다.

use new_database;

 

 

이 예에서는 ID, 이름 및 전자 메일의 세 가지 필드를 사용하여 연락처라는 간단한 테이블을 만듭니다.

CREATE TABLE contacts (
  id INT PRIMARY KEY,
  name VARCHAR(30),
  email VARCHAR(30)
);

# Query OK, 1 row affected (0.00 sec)
반응형