MariaDB 설치 및 환경 설정
1️⃣ MariaDB 설치 방법 (Linux, Windows, macOS, Docker, Kubernetes)
MariaDB는 다양한 운영 체제 및 환경에서 설치할 수 있습니다. 각각의 설치 방법을 아래에 설명하겠습니다.
Linux에서 MariaDB 설치
-
Ubuntu/Debian:
sudo apt update sudo apt install mariadb-server sudo systemctl start mariadb sudo systemctl enable mariadb
-
CentOS/RHEL:
sudo yum install mariadb-server sudo systemctl start mariadb sudo systemctl enable mariadb
Windows에서 MariaDB 설치
-
MariaDB 공식 웹사이트에서 Windows용 설치 프로그램을 다운로드합니다.
-
설치 프로그램을 실행하고, 지침을 따라 MariaDB를 설치합니다.
-
설치 후, MariaDB 서비스를 시작합니다.
Services.msc
에서 MariaDB 서비스를 찾아 시작할 수 있습니다.
macOS에서 MariaDB 설치
-
Homebrew를 사용하여 설치:
brew install mariadb
-
설치 후 MariaDB를 시작:
brew services start mariadb
Docker에서 MariaDB 설치
Docker를 사용하면 MariaDB를 쉽게 컨테이너화하여 실행할 수 있습니다. 아래 명령어로 MariaDB 컨테이너를 실행할 수 있습니다.
docker run --name mariadb -e MYSQL_ROOT_PASSWORD=rootpassword -d mariadb:latest
Kubernetes에서 MariaDB 설치
Kubernetes에서 MariaDB를 설치하기 위해 Helm을 사용할 수 있습니다. MariaDB를 배포하는 기본적인 방법은 아래와 같습니다.
-
Helm 차트 설치:
helm repo add bitnami https://charts.bitnami.com/bitnami helm install my-mariadb bitnami/mariadb
-
서비스 상태 확인:
kubectl get pods kubectl get svc
2️⃣ MariaDB의 기본 디렉터리 구조 및 파일 설명 (/var/lib/mysql, /etc/my.cnf)
MariaDB의 기본 디렉터리 구조와 주요 파일들은 데이터베이스의 동작과 관련된 중요한 정보를 담고 있습니다.
디렉터리 구조
-
/var/lib/mysql: MariaDB의 데이터베이스 파일이 저장되는 기본 디렉터리입니다. 데이터베이스의 테이블, 인덱스 및 로그 파일이 여기에 저장됩니다. 각 데이터베이스는 이 디렉터리 내의 개별 폴더로 저장됩니다.
-
/etc/my.cnf: MariaDB의 주요 설정 파일로, 서버가 시작될 때 사용되는 다양한 설정값들을 지정합니다. 이 파일을 통해 MariaDB의 메모리 사용, 쿼리 캐시, 연결 설정 등을 조정할 수 있습니다.
-
/var/log/mysql: MariaDB의 로그 파일이 저장되는 디렉터리입니다. 예를 들어, 오류 로그, 일반 쿼리 로그 등이 포함될 수 있습니다.
파일 설명
- my.cnf: MariaDB의 글로벌 설정 파일로, MariaDB 서버의 전반적인 설정을 관리합니다. 이 파일은 MariaDB 서버의 성능을 최적화하고 다양한 기능을 활성화하는 데 사용됩니다. 주요 설정 항목은 메모리 버퍼 크기, 캐시 설정, 연결 타임아웃 등이 있습니다.
3️⃣ MariaDB 초기 설정 및 보안 강화 (mysql_secure_installation)
MariaDB를 설치한 후, 보안을 강화하기 위한 초기 설정을 진행하는 것이 좋습니다. mysql_secure_installation
명령어를 통해 보안 설정을 할 수 있습니다.
mysql_secure_installation 명령어 실행
sudo mysql_secure_installation
-
루트 비밀번호 설정:
MariaDB의 루트 계정에 강력한 비밀번호를 설정합니다. -
익명 사용자 제거:
익명 사용자 계정을 삭제하여 보안을 강화합니다. -
루트 계정 원격 접속 차단:
루트 계정의 원격 접속을 차단하여 보안을 강화할 수 있습니다. -
테스트 데이터베이스 삭제:
기본적으로 MariaDB에는 테스트 데이터베이스가 생성됩니다. 이를 삭제하여 보안을 높입니다. -
데이터베이스 권한 테이블 다시 로드:
설정 변경 사항을 적용하기 위해 권한 테이블을 다시 로드합니다.
4️⃣ MariaDB 서비스 관리 (systemctl start mariadb, systemctl status mariadb)
MariaDB 서비스를 관리하는 기본 명령어는 systemctl
을 사용하여 실행할 수 있습니다. 시스템의 상태를 확인하고, 서비스를 시작, 중지, 재시작하는 등의 작업을 할 수 있습니다.
MariaDB 서비스 시작
sudo systemctl start mariadb
MariaDB 서비스 상태 확인
sudo systemctl status mariadb
이 명령어는 MariaDB 서비스의 현재 상태를 확인할 수 있습니다. 서비스가 정상적으로 실행 중이라면, 활성 상태(active)로 표시됩니다.
MariaDB 서비스 자동 시작 설정
MariaDB 서비스를 부팅 시 자동으로 시작되도록 설정할 수 있습니다.
sudo systemctl enable mariadb
MariaDB 서비스 중지
sudo systemctl stop mariadb
5️⃣ MariaDB 기본 설정 파일 (my.cnf) 최적화
MariaDB의 설정 파일인 my.cnf
를 통해 다양한 성능 최적화를 할 수 있습니다. 예를 들어, 메모리 할당, 캐시 설정, 쿼리 성능 등을 조정할 수 있습니다.
my.cnf 파일 위치
- Linux:
/etc/my.cnf
또는/etc/mysql/my.cnf
- Windows:
C:\Program Files\MariaDB 10.x\data\my.ini
성능 최적화 예시
-
버퍼 풀 크기 증가: MariaDB의 데이터베이스 처리 성능을 향상시키기 위해 InnoDB 버퍼 풀 크기를 증가시킬 수 있습니다.
[mysqld] innodb_buffer_pool_size = 1G
-
쿼리 캐시 활성화: 자주 실행되는 쿼리의 성능을 높이기 위해 쿼리 캐시를 활성화할 수 있습니다.
query_cache_type = 1 query_cache_size = 64M
-
동시 연결 수 조정: 많은 사용자와의 연결을 처리하기 위해 최대 연결 수를 늘릴 수 있습니다.
max_connections = 500
-
파일 크기 설정: MariaDB의 데이터베이스 파일 크기를 설정하여, 대규모 데이터베이스에서의 성능을 최적화할 수 있습니다.
innodb_data_file_path = ibdata1:10M:autoextend