소개
웹 개발과 데이터 관리에서는 신뢰할 수 있는 데이터베이스가 필수입니다. MariaDB는 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. MySQL 의 원 개발자들이 만들었으며 MySQL 과 높은 호환성을 갖도록 설계되었습니다.
관계형 데이터베이스란 데이터를 행과 열로 구성된 테이블에 저장하고, 서로 관련된 데이터를 논리적으로 연결하는 방식을 의미합니다. 이 모델은 구조화와 검색이 쉽고 사용자, 주문, 재고 같은 비즈니스 데이터에 적합하기 때문에 웹 애플리케이션의 기반으로 자리 잡았습니다.
데이터베이스 서버와 서버가 관리하는 데이터는 구분해야 합니다. MariaDB 를 설치한다고 해서 애플리케이션용 테이블이 바로 생성되는 것은 아닙니다. 나중에 이러한 테이블을 저장하고 조회할 수 있는 서비스를 설치하는 것입니다.
이 실습에서는 Ubuntu Linux 시스템에 MariaDB 데이터베이스 서버를 처음부터 설정하는 방법을 배웁니다. 소프트웨어 설치, 서비스 시작, 무단 액세스를 방지하기 위한 설치 보안 강화, 데이터베이스 연결을 통한 작동 확인까지 전체 과정을 진행합니다.
실습을 마치면 프로젝트에서 사용할 수 있는 완전히 작동하는 데이터베이스 서버를 갖추게 됩니다.
데이터베이스 서버 설치
이 단계에서는 MariaDB 서버 패키지를 설치합니다. Ubuntu 는 소프트웨어 설치를 관리할 때 apt(Advanced Package Tool) 를 사용합니다.
MariaDB 서버를 설치하려면 터미널에서 다음 명령을 실행합니다. 소프트웨어를 설치하려면 관리자 권한이 필요하므로 sudo를 사용합니다.
이 단계에서는 데이터베이스 셸에 접속하는 것이 아니라 서버 소프트웨어를 설치합니다. 이는 웹 서버나 지금까지 살펴본 다른 데몬과 동일한 서비스 방식입니다.
sudo apt install mariadb-server -y
설명:
sudo: 관리자 (슈퍼유저) 권한으로 명령을 실행합니다.apt install: 패키지를 설치하는 명령입니다.mariadb-server: 설치할 패키지의 이름입니다.-y: 확인 메시지가 표시될 때마다 자동으로 "yes"를 입력해 설치를 진행합니다.
참고: 일부 LabEx 환경에는 MariaDB 가 이미 설치되어 있을 수 있습니다. 이 경우 이 명령은 설치된 버전을 확인하고 최신 버전을 유지하도록 처리하므로 그대로 실행해도 괜찮습니다.
명령 실행이 끝나면 버전을 확인하여 설치가 완료되었는지 검증합니다.
mariadb --version
mariadb Ver 15.1 Distrib 10.6.x...와 비슷한 출력이 표시되면 시스템에 소프트웨어가 설치된 것입니다.
데이터베이스 서비스 시작
소프트웨어를 설치하면 디스크에 파일이 저장되지만 프로그램이 항상 자동으로 시작되는 것은 아닙니다. 데이터베이스 서버는 일반적으로 연결을 수신하는 백그라운드 서비스(데몬이라고도 함) 로 실행됩니다.
이 클라이언트 - 서버 모델은 SQL 데이터베이스가 작동하는 핵심 방식입니다. 애플리케이션과 관리자는 원시 데이터 파일을 직접 읽는 대신 서버에 연결하고 쿼리를 전송한 뒤 결과를 받습니다.
다음 명령으로 MariaDB 서비스를 시작합니다.
sudo service mysql start
참고: MariaDB 를 설치했더라도 호환성을 위해 서비스 이름은 mysql로 유지되는 경우가 많습니다.
서비스가 활성 상태로 정상 실행 중인지 확인하려면 상태를 확인합니다.
sudo service mysql status
출력에 서비스 상태가 active (running)으로 표시되어야 합니다. 이 상태가 표시되면 데이터베이스 서버가 실행 중이며 연결을 받을 준비가 된 것입니다.
설치 환경 보안 강화
기본적으로 새로 설치한 MariaDB 에는 테스트에는 편리하지만 운영 환경에서는 안전하지 않은 설정이 포함되어 있습니다. 예를 들어 익명 사용자가 허용되어 있거나 root 비밀번호가 비어 있을 수 있습니다.
MariaDB 에는 이러한 문제를 해결하는 보안 스크립트가 포함되어 있습니다. 다음 명령으로 실행합니다.
이 스크립트의 목적은 안전하지 않은 기본 설정을 제거하고 액세스 제한을 강화하는 것입니다. 인프라 소프트웨어에서는 처음 설치할 때 편의성을 우선한 다음, 실제 환경에서 더 안전하게 사용할 수 있도록 후속 단계에서 보안을 강화하는 방식이 일반적입니다.
sudo mysql_secure_installation
이 스크립트는 대화형으로 실행되며 여러 질문을 표시합니다. 아래 지침에 따라 답변합니다.
- Enter current password for root: Enter 키를 누릅니다 (아직 비밀번호가 없습니다).
- Switch to unix_socket authentication: n을 입력하고 Enter 키를 누릅니다.
- Change the root password?: n을 입력하고 Enter 키를 누릅니다 (이 실습에서는 로그인을 간단하게 하기 위해 비밀번호 없이 사용하는 설정을 유지합니다).
- Remove anonymous users?: Y를 입력하고 Enter 키를 누릅니다.
- Disallow root login remotely?: Y를 입력하고 Enter 키를 누릅니다.
- Remove test database and access to it?: Y를 입력하고 Enter 키를 누릅니다.
- Reload privilege tables now?: Y를 입력하고 Enter 키를 누릅니다.
스크립트가 끝나면 "All done!"이 출력됩니다. 이제 데이터베이스가 일반적인 취약점으로부터 보호됩니다.
연결 및 확인
마지막 단계에서는 데이터베이스 서버에 연결할 수 있는지 확인합니다. 기본 구성을 사용하므로 root 사용자는 비밀번호 없이 sudo를 사용해 연결할 수 있습니다.
MariaDB 모니터 (데이터베이스용 명령줄 인터페이스) 에 로그인합니다.
sudo mariadb -u root
성공하면 프롬프트가 다음과 같이 바뀝니다.
MariaDB [(none)]>
이 프롬프트가 표시되면 이제 Linux 운영 체제가 아니라 데이터베이스 서버에 직접 명령을 입력하고 있다는 뜻입니다.
이 구분은 앞으로 매우 중요합니다. MariaDB 셸은 일반적인 Linux 셸 명령이 아니라 SQL 명령을 해석하므로, 이제 다른 명령 환경에서 작업하고 있습니다.
연결을 종료하고 일반 Linux 터미널로 돌아가려면 다음을 입력합니다.
exit
축하합니다! MariaDB 데이터베이스를 성공적으로 설치하고 보안을 강화한 뒤 연결했습니다.
요약
이 실습에서는 안정적인 데이터베이스 환경을 성공적으로 구축했습니다. 다음 작업을 수행하는 방법을 배웠습니다.
- 패키지 관리자를 사용해 MariaDB 서버를 설치했습니다.
- 데이터베이스 서비스를 시작하고 상태를 확인했습니다.
- 안전하지 않은 기본 설정을 제거하여 설치 환경의 보안을 강화했습니다.
- 명령줄 클라이언트를 사용해 데이터베이스에 연결했습니다.
이 단계들은 애플리케이션에서 사용할 데이터베이스 서버를 준비하는 데 필요한 기본 과정이며, 서버가 정상적으로 작동하면서도 안전하게 실행되도록 합니다.



