본문 바로가기

리눅스

[draft] 우분투에 MariaDB를 설치하는 방법

728x90

우분투에 MariaDB를 설치하는 방법

MariaDB는 MySQL의 대체 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다.

기존 MariaDB 설치 확인 및 제거

sudo apt remove --purge mariadb-server mariadb-client
sudo apt autoremove
sudo apt autoclean

1. 시스템 업데이트

시스템 패키지를 최신 상태로 업데이트합니다.

sudo apt update

2. MariaDB 설치

기본적으로 MariaDB는 Ubuntu의 기본 패키지 저장소에 포함되어 있으므로 간단하게 설치할 수 있습니다.

mariadb-server 패키지는 자동으로 MariaDB를 시작하도록 설정됩니다.

sudo apt install mariadb-server

MariaDB 버전 확인

mysql -V
$ mysql -V
mysql  Ver 15.1 Distrib 10.6.18-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

3. MariaDB 서비스 확인

MariaDB 서비스가 정상적으로 실행되고 있는지 확인합니다.

sudo systemctl status mariadb

서비스가 활성화되지 않은 경우 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.

sudo systemctl start mariadb
sudo systemctl enable mariadb

4. 보안 설정

MariaDB 설치 후 보안 설정을 강화하기 위해 mysql_secure_installation 스크립트를 실행합니다.

sudo mysql_secure_installation
더보기

---

$ sudo mysql_secure_installation

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
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

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

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password:
Re-enter new password:
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] 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? [Y/n] Y
 ... Success!

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

Cleaning up...

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

Thanks for using MariaDB!

---

기본적으로 보안 강화

  • root 사용자에 대한 비밀번호 설정
  • 익명 사용자 삭제
  • 원격 root 로그인 비활성화
  • 테스트 데이터베이스 제거
  • 권한 테이블 다시 로드

5. MariaDB 연결 테스트

MariaDB에 root 사용자로 접속합니다.

sudo mysql -u root
728x90

6. MariaDB 사용

새로운 데이터베이스 생성

testdb라는 데이터베이스를 생성

CREATE DATABASE testdb;
SHOW DATABASES;

사용자 추가

testuser라는 사용자를 만들고 testpassword라는 비밀번호를 설정

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpassword';

원격 접속을 허용

CREATE USER 'testuser'@'%' IDENTIFIED BY 'testpassword';

권한 설정

testdb 데이터베이스에 대해 testuser 사용자에게 모든 권한을 부여

GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';

원격에서 접속하는 사용자를 위한 설정

GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%';

변경 사항 적용

FLUSH PRIVILEGES;

권한 확인

SHOW GRANTS FOR 'testuser'@'localhost';
MariaDB [(none)]> SHOW GRANTS FOR 'testuser'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for testuser@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `testuser`@`localhost` IDENTIFIED BY PASSWORD '*9F69E47E519D9CA02116BF5796684F7D0D45F8FA' |
| GRANT ALL PRIVILEGES ON `testdb`.* TO `testuser`@`localhost`                                                    |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

데이터베이스 접속 확인

사용자 계정을 사용하여 데이터베이스에 접속할 수 있는지 확인

mysql -u testuser -p testdb
$ mysql -u testuser -p testdb
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.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 [testdb]>

데이터베이스 삭제 및 사용자 삭제

데이터베이스 삭제

DROP DATABASE testdb;

사용자 삭제

DROP USER 'testuser'@'localhost';

 

MariaDB 설치 후 기본적으로 제공되는 명령어 및 설정을 통해 데이터베이스 관리 작업을 수행할 수 있습니다.

 

참고URL

- DigitalOcean Tutorial : How To Install MariaDB on Ubuntu 22.04

- MariaDB Foundation : Download MariaDB Server

- MariaDB Server Documentation : Installing MariaDB Binary Tarballs

 

728x90