YGH

[홈서버 만들기] 8. 데이터베이스

2020년 11월 17일

개요

다양한 서비스에서 대부분 사용되고 있는 데이터베이스를 설치해볼 것이다.

다양한 데이터베이스 관리 시스템이 존재하지만 MySQL과 MariaDB중 하나를 택할 것이다.

여기서는 MariaDB를 설치해보도록 하겠다.

설치

$ sudo apt install mariadb-server

데이터베이스 관리 시스템을 처음 설치했을 때 root 계정 비밀번호 등 몇 가지를 설정해야 합니다.

$ sudo mysql_secure_installation

root 계정 비밀번호를 입력하라 하는데 아직 설정되어 있지 않다.

엔터를 누르자.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):

루트 비밀번호를 설정하기 위해 Y를 입력하자.

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]

사용할 root 계정의 비밀번호를 설정하자.

두 번 입력해야 한다.

New password:
Re-enter new password:

root 계정의 비밀번호가 정상적으로 설정되었고 익명 계정을 삭제할 것인지 물어본다.

사용할 필요가 없고 나중에 필요하면 계정을 만들면 된다.

Y를 입력하여 삭제하자.

Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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? [Y/n]

기본적으로 root계정은 홈서버 안에서만 로그인 되게끔 되어있다.

Y를 입력하면 이 설정 그대로 가기에 안전하고 N을 입력하면 외부에서 접속이 가능하여 위험하다.

root 계정이 외부에서 접속하는 환경은 최대한 피하는 것이 좋다.

Y를 입력하자.

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? [Y/n]

test라는 데이터베이스가 기본으로 하나 있는데 삭제할 것인지 물어본다.

필요 없는 데이터베이스다.

Y를 입력하자.

By default, MariaDB 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? [Y/n]

변경된 사항들을 적용할지 물어본다.

Y를 입력하자.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]

초기 설정이 끝났고 MariaDB를 사용해줘서 고맙다고 한다.

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

테스트

만약 sudo를 빼고 입력한다면 아무리 비밀번호를 쳐도 접속되지 않을 것이다.

일반 계정에서 데이터베이스 관리 시스템의 root계정으로 접속 못하게끔 되어있는 것 같은데 이 부분에서는 정확히 모르겠다.

$ sudo mysql -u root -p

방금 설정한 root 계정의 비밀번호를 입력해서 접속해보자.

Enter password:

아래와 같이 뜨면 정상적으로 접속 된 것이다.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 41
Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

테스트 명령어로 확인해보자.

> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.001 sec)

이상 없이 잘 실행되는 것을 확인했으면 접속을 종료하자.

> quit
Bye

DBMS에 새로운 계정을 만들고 홈서버의 일반계정으로 접속하는 것을 바로 다음 시간인 WordPress 설치 때 해보도록 하자.