MariaDB 설치 - WHATDO-TEAM/whatdo GitHub Wiki
MariaDB 10.11.10 버전을 Ubuntu 22.04에서 설치하는 방법을 안내해 드리겠습니다. 이 설치 방법은 MariaDB 공식 저장소를 추가하고, 최신 LTS 버전 바로 이전 LTS(Long term support)버전을 설치하는 방식입니다.
- 공식 한국미러 사이트가 없어 일본 미러 사이트로 설정하였습니다.
MariaDB 10.11.10 버전은 Ubuntu 22.04의 기본 저장소에는 포함되지 않으므로 MariaDB 공식 저장소를 추가해야 합니다.
- MariaDB GPG 키를 /usr/share/keyrings 디렉터리에 저장합니다.
curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc | sudo gpg --dearmor -o /usr/share/keyrings/mariadb-keyring.gpg
- /usr/share/keyrings/mariadb-keyring.gpg 파일을 참조하는 방식으로 저장소를 추가합니다.
- GPG 키 파일 경로를 포함하여 MariaDB 저장소 추가
echo 'deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/mariadb-keyring.gpg] https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.11/ubuntu jammy main' | sudo tee /etc/apt/sources.list.d/mariadb.list
- 새로운 저장소 설정에 따라 패키지 목록을 업데이트합니다.
sudo apt update
- MariaDB 10.11.10 서버 설치
sudo apt install mariadb-server -y
MariaDB 설치가 완료되면 MariaDB 서비스를 시작하고, 시스템 부팅 시 자동으로 시작되도록 설정합니다.
- MariaDB 서비스 시작
sudo systemctl start mariadb
- MariaDB 부팅 시 자동 시작 설정
sudo systemctl enable mariadb
MariaDB 설치 후 기본 보안 설정을 통해 불필요한 기능을 비활성화하고 root 비밀번호를 설정합니다.
- 보안 설정 스크립트 실행
sudo mysql_secure_installation
보안 설정을 진행하면서 다음과 같은 항목들이 나타납니다. 보통 각 항목에 대해 "Y"를 선택하는 것이 일반적입니다:
- 루트 비밀번호 설정: MariaDB root 사용자의 비밀번호 설정.
- 익명 사용자 제거: 외부에서 익명 사용자가 MariaDB에 접속하지 못하도록 제한.
- 루트 사용자 원격 접속 차단: root 사용자가 로컬에서만 접속할 수 있도록 설정.
- 테스트 데이터베이스 삭제: 기본 테스트 데이터베이스와 접근 권한을 제거하여 보안 강화.
- 권한 테이블 다시 로드: 변경 사항을 즉시 반영.
보안관련 선택 사항 설명
- Switch to unix_socket authentication [Y/n]: Y 선택
- 설명: unix_socket 인증을 활성화하여 로컬 운영체제 계정 인증을 통해 MariaDB root 계정에 접근할 수 있게 했습니다.
- 의미: 이 설정을 활성화하면 MariaDB root 사용자에게 추가적인 비밀번호가 필요하지 않습니다. 대신 운영체제의 root 사용자로 로그인된 상태에서 sudo mysql 또는 mysql -u root 명령어로 비밀번호 없이 접근할 수 있습니다.
- 장점: unix_socket 인증은 로컬에서만 접근을 허용하고 운영체제 계정 기반 인증을 요구하므로 보안이 강화됩니다.
- Change the root password? [Y/n]: n 선택
- 설명: root 계정의 비밀번호를 변경할지 묻는 질문에서 n을 선택하여 비밀번호 변경을 건너뛰었습니다.
- 의미: unix_socket 인증이 활성화되었으므로 로컬 사용자는 운영체제 자격으로 MariaDB root 계정에 접근할 수 있습니다. 이미 비밀번호로 보호된 상태라 비밀번호 변경을 선택하지 않아도 됩니다.
- Remove anonymous users? [Y/n]: Y 선택
- 설명: MariaDB에는 익명 사용자가 기본으로 추가되어 있는데, 이를 삭제할지 묻는 질문에서 Y를 선택했습니다.
- 의미: 익명 사용자는 별도 계정 없이 MariaDB에 접근할 수 있는 사용자로, 테스트 환경을 위해 기본 제공됩니다. 하지만 보안 강화를 위해 프로덕션 환경에서는 삭제하는 것이 좋습니다.
- Disallow root login remotely? [Y/n]: Y 선택
- 설명: root 사용자의 원격 접속을 비활성화할지 묻는 질문에 Y를 선택했습니다.
- 의미: MariaDB root 계정에 대한 원격 접근을 차단함으로써 네트워크를 통한 보안 위험을 줄일 수 있습니다. 이제 root 사용자는 로컬에서만 접근이 가능하므로 보안이 더욱 강화됩니다.
- Remove test database and access to it? [Y/n]: Y 선택
- 설명: 기본으로 제공되는 test 데이터베이스와 그에 대한 접근 권한을 제거할지 묻는 질문에 Y를 선택했습니다.
- 의미: test 데이터베이스는 누구나 접근할 수 있으며 주로 테스트 목적으로 제공됩니다. 프로덕션 환경에서는 불필요한 데이터베이스이므로 삭제하여 보안을 강화할 수 있습니다.
- Reload privilege tables now? [Y/n]: Y 선택
- 설명: 지금까지 변경한 사항을 적용하기 위해 권한 테이블을 다시 로드할지 묻는 질문에 Y를 선택했습니다.
- 의미: 설정한 보안 옵션이 즉시 반영되도록 권한 테이블을 갱신하여, MariaDB가 모든 변경 사항을 인식하고 적용할 수 있게 합니다.
보안 설정이 완료되면 MariaDB에 접속하여 설치가 제대로 되었는지 확인합니다.
- MariaDB 접속
- 비밀번호를 입력하여 접속
sudo mysql -u root -p
접속 후 다음 SQL 명령어로 MariaDB가 정상 작동하는지 테스트합니다.
-- 버전 확인
SELECT VERSION();
-- 데이터베이스 목록 확인
SHOW DATABASES;
MariaDB의 주요 설정 파일은 **/etc/mysql/mariadb.conf.d/50-server.cnf
**에 위치합니다. 필요한 설정을 간단히 추가하여 MariaDB를 최적화할 수 있습니다.
다음은 일반적으로 사용하는 기본 설정 예시입니다.
[mysqld]
# 포트 설정
port = 3306
# 최대 접속 수
max_connections = 150
# 기본 문자셋 설정
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
# 쿼리 로그 설정
general_log = ON
general_log_file = /var/log/mysql/query.log
설정을 변경한 후에는 MariaDB 서비스를 재시작하여 변경 사항을 적용합니다.
# MariaDB 재시작
sudo systemctl restart mariadb
이제 Ubuntu 22.04에서 MariaDB 10.11.10 설치와 기본 설정이 완료되었습니다.