본문 바로가기
리눅스 강의

리눅스에서 MariaDB 마스터하기: 설치부터 관리까지

by infolily 2024. 10. 11.

데이터베이스 관리 시스템(DBMS)은 앱 개발, 웹 서비스, 데이터 분석 등 다양한 분야에서 필수적인 요소가 되었죠. 특히 오픈소스 DBMS인 MariaDB는 MySQL의 계보를 잇는 강력한 도구로, 성능과 안정성을 겸비해 많은 개발자와 관리자들에게 사랑받고 있어요. 이 글에선 리눅스 환경에서 MariaDB를 설치하고 관리하는 방법을 쉽고 친절하게 알려드릴게요. 처음 접하는 분들도 걱정 마세요! adım adım ilerleyeceğiz.

리눅스에서 MariaDB 설치하기: Debian/Ubuntu & CentOS/RHEL

Debian/Ubuntu에서 MariaDB 설치하기

아, Debian이나 Ubuntu를 쓰시는 분들이라면 익숙한 apt를 이용하면 돼요. 먼저 MariaDB 저장소를 추가해야 하는데, 이게 뭐냐면, 마치 앱스토어처럼 MariaDB 관련 파일들을 모아놓은 곳이라고 생각하면 돼요. 여기서 필요한 패키지들을 받아서 설치하는 거죠.

  1. APT 저장소 추가:
    • 터미널을 열고 아래 명령어를 차례대로 입력해 주세요.
    sudo apt update
    sudo apt install software-properties-common
    sudo add-apt-repository 'deb [arch=amd64] http://mariadb.mirrors.pair.com/repo/10.5/ubuntu focal main' 
    
    • sudo apt update는 패키지 목록을 최신 상태로 업데이트하는 명령어고, sudo apt install software-properties-common은 저장소를 추가하기 위한 필수적인 패키지를 설치하는 명령이에요. 마지막 sudo add-apt-repository는 실제로 MariaDB 저장소를 추가하는 명령어랍니다.
  2. MariaDB 설치:
    • 이제 저장소가 추가되었으니, 본격적으로 MariaDB를 설치해 볼까요? 아래 명령어를 실행하면 설치가 시작될 거예요.
    sudo apt update 
    sudo apt install mariadb-server
    
    • sudo apt update는 저장소를 추가한 후 다시 패키지 목록을 갱신하는 명령어이고, sudo apt install mariadb-server는 MariaDB 서버를 설치하는 명령이에요.
  3. 서비스 시작 및 보안 설정:
    • 설치가 끝났으면, MariaDB 서비스를 시작하고 보안 설정을 해야 해요. 안전하게 사용하기 위한 필수적인 과정이라고 생각하면 돼요.
    sudo systemctl start mariadb
    sudo mysql_secure_installation
    
    • sudo systemctl start mariadb는 MariaDB 서비스를 시작하는 명령어이고, sudo mysql_secure_installation은 MariaDB 보안 설정을 위한 스크립트를 실행하는 명령이에요. 이 스크립트를 통해 root 계정 비밀번호 설정, 익명 사용자 제거, 원격 root 로그인 제한 등의 보안 작업을 수행할 수 있어요.

CentOS/RHEL에서 MariaDB 설치하기

CentOS나 RHEL을 사용하시는 분들은 yum을 통해 설치를 진행해야 해요. apt와 비슷하지만, yum은 CentOS/RHEL에서 사용하는 패키지 관리 도구에요.

  1. YUM 저장소 추가:
    • MariaDB를 사용하려면 먼저 yum 저장소를 추가해야 해요. /etc/yum.repos.d/MariaDB.repo라는 파일을 만들고, 다음과 같은 내용을 추가해 주세요.
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.5/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    
    • 이 설정 파일은 yum에게 MariaDB 패키지를 어디서 찾아야 하는지 알려주는 역할을 해요.
  2. MariaDB 설치:
    • 이제 yum을 이용하여 MariaDB 서버와 클라이언트를 설치해 볼게요.
    sudo yum install MariaDB-server MariaDB-client
    
    • 이 명령어 하나로 MariaDB 서버와 클라이언트가 모두 설치될 거예요.
  3. 서비스 시작 및 보안 설정:
    • 마지막으로 MariaDB 서비스를 시작하고 보안 설정을 해 줘야 해요.
    sudo systemctl start mariadb
    sudo mysql_secure_installation
    
    • 이 부분은 Debian/Ubuntu와 동일해요. 서비스를 시작하고 mysql_secure_installation 스크립트를 통해 보안 설정을 진행하면 돼요.

MariaDB 데이터베이스 관리하기: 기본부터 심화까지

MariaDB에 로그인하기

MariaDB에 접속하려면 터미널에서 다음 명령을 입력해 주세요.

mysql -u root -p
  • -u root는 root 계정으로 로그인한다는 뜻이고, -p는 비밀번호를 입력하라는 옵션이에요.
  • 비밀번호를 입력하면 MariaDB 프롬프트가 나타나고, 이제 SQL 명령어를 사용하여 데이터베이스를 관리할 수 있게 돼요.

데이터베이스 생성 및 관리

MariaDB에서 데이터베이스를 생성하고 관리하는 방법은 다음과 같아요.

  • 데이터베이스 생성:
    • CREATE DATABASE 명령어를 사용하여 새로운 데이터베이스를 생성할 수 있어요. my_database는 생성할 데이터베이스의 이름이에요. 원하는 이름으로 바꿔서 사용하면 돼요.
  • CREATE DATABASE my_database;
  • 데이터베이스 목록 확인:
    • SHOW DATABASES 명령어를 사용하면 현재 MariaDB 서버에 존재하는 모든 데이터베이스 목록을 확인할 수 있어요.
  • SHOW DATABASES;
  • 특정 데이터베이스 선택:
    • USE 명령어를 사용하여 특정 데이터베이스를 선택하고, 이후에 실행되는 SQL 명령어가 선택된 데이터베이스에 적용되도록 할 수 있어요.
  • USE my_database;
  • 테이블 생성:
    • CREATE TABLE 명령어를 사용하여 테이블을 생성할 수 있어요. users는 테이블 이름이고, id, name, email은 테이블의 컬럼 이름이에요. 각 컬럼의 데이터 유형도 함께 지정해 줘야 해요.
  • CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) );

MariaDB 데이터 백업 및 복원: 안전한 데이터 관리

데이터베이스 백업

데이터베이스를 백업하려면 다음 명령어를 사용하면 돼요.

mysqldump -u root -p my_database > my_database_backup.sql
  • mysqldump는 MariaDB 데이터를 백업하는 유틸리티에요.
  • -u root는 root 계정으로 백업을 진행한다는 뜻이고, -p는 비밀번호를 입력하라는 옵션이에요.
  • my_database는 백업할 데이터베이스 이름이고, > my_database_backup.sql은 백업 파일을 my_database_backup.sql이라는 이름으로 저장한다는 의미에요.

데이터베이스 복원

백업 파일을 이용하여 데이터베이스를 복원하려면 다음 명령어를 사용하면 돼요.

mysql -u root -p my_database < my_database_backup.sql
  • mysql은 MariaDB에 접속하는 명령어에요.
  • -u root는 root 계정으로 접속한다는 뜻이고, -p는 비밀번호를 입력하라는 옵션이에요.
  • my_database는 복원할 데이터베이스 이름이고, < my_database_backup.sqlmy_database_backup.sql 파일의 내용을 데이터베이스에 적용한다는 의미에요.

MariaDB 서비스 관리: 시작, 중지, 상태 확인

서비스 상태 확인

MariaDB 서비스의 현재 상태를 확인하려면 다음 명령어를 사용하면 돼요.

sudo systemctl status mariadb
  • 이 명령어를 실행하면 MariaDB 서비스가 실행 중인지, 중지되었는지, 오류가 있는지 등의 정보를 확인할 수 있어요.

부팅 시 자동 시작 설정

시스템을 부팅할 때마다 MariaDB 서비스가 자동으로 시작되도록 설정하려면 다음 명령어를 사용하면 돼요.

sudo systemctl enable mariadb
  • 이 명령어를 실행하면 MariaDB 서비스가 시스템 부팅 시 자동으로 시작되도록 설정될 거예요.

MariaDB 성능 튜닝 & 최적화 가이드

쿼리 최적화

쿼리 최적화는 MariaDB 성능 개선에 있어 가장 중요한 부분 중 하나에요. 쿼리가 데이터베이스에 부담을 주지 않고 효율적으로 실행되도록 최적화하는 작업이죠.

  • 인덱스 사용:
    • 자주 사용하는 컬럼에 인덱스를 생성하면 쿼리 속도를 빠르게 할 수 있어요.
    • 예를 들어, 사용자 테이블에서 이름을 기준으로 검색하는 쿼리가 빈번하다면, name 컬럼에 인덱스를 생성하면 검색 속도가 빨라질 거예요.
    • 하지만, 너무 많은 인덱스를 생성하면 오히려 성능 저하가 발생할 수 있으니 주의해야 해요.
  • 쿼리 분석:
    • EXPLAIN 명령어를 사용하여 쿼리가 데이터베이스에서 어떻게 실행되는지 분석해 볼 수 있어요.
    • 이 분석 결과를 토대로 쿼리를 개선하고 성능을 향상시킬 수 있죠.
  • 쿼리 캐시 활용:
    • 자주 실행되는 쿼리 결과를 캐시에 저장하여, 동일한 쿼리가 다시 실행될 때 캐시에서 결과를 가져와 쿼리 실행 시간을 줄일 수 있어요.

MySQLTuner 활용

MySQLTuner는 MariaDB 성능을 분석하고 개선하기 위한 훌륭한 도구에요.

  • 시스템 설정 분석:
    • MySQLTuner는 MariaDB 시스템 설정을 분석하여 개선할 부분을 제안해 줘요.
  • 버퍼 및 캐시 설정:
    • MySQLTuner를 통해 버퍼와 캐시 설정을 조정하여 성능을 향상시킬 수 있어요.
  • 인덱스 최적화:
    • MySQLTuner는 인덱스를 분석하고, 필요 없는 인덱스는 제거하고, 필요한 인덱스는 생성하도록 제안해 줘요.

MariaDB 설정 파일 조정

MariaDB 설정 파일(/etc/my.cnf)을 직접 수정하여 성능을 개선할 수도 있어요.

설정 항목 설명 기본 값 권장 값
innodb_buffer_pool_size InnoDB 버퍼 풀 크기 128M 시스템 메모리의 70~80%
query_cache_size 쿼리 캐시 크기 0 시스템 메모리의 10~20%
max_connections 최대 연결 수 151 필요에 따라 조정
thread_cache_size 스레드 캐시 크기 0 필요에 따라 조정

주의: 설정 파일을 수정하기 전에 반드시 백업을 해 두는 것이 좋고, 설정 변경 후에는 MariaDB 서비스를 재시작해야 변경 사항이 적용돼요.

MariaDB 관련 FAQ

Q1. MariaDB와 MySQL은 어떤 관계인가요?

A1. MariaDB는 MySQL의 오픈소스 포크 버전이에요. MySQL이 Oracle에 인수된 후, MySQL 개발 방향에 대한 우려가 커지면서, MySQL 개발자들이 MariaDB를 만들었죠. MariaDB는 MySQL과 호환되며, MySQL에서 사용하던 많은 기능을 그대로 사용할 수 있어요.

Q2. MariaDB는 어떤 운영체제에서 사용할 수 있나요?

A2. MariaDB는 리눅스, 윈도우, macOS 등 다양한 운영체제에서 사용할 수 있는 크로스 플랫폼 데이터베이스에요. 특히 리눅스 환경에서 많이 사용되고 있죠.

Q3. MariaDB는 무료로 사용할 수 있나요?

A3. MariaDB는 오픈소스 소프트웨어이기 때문에 무료로 사용할 수 있어요. 하지만, 상용 버전도 존재하며, 상용 버전은 추가적인 기능과 기술 지원을 제공해요.

마무리

위 내용은 MariaDB 설치 및 관리에 대한 기본적인 정보를 제공하며, 실제 환경에 따라 설정 및 명령어가 달라질 수 있습니다. 더 자세한 정보는 MariaDB 공식 문서를 참고해 주세요.

키워드:MariaDB,데이터베이스,리눅스,DBMS,MySQL,오픈소스,데이터베이스관리,데이터베이스설치,데이터백업,데이터복원,성능튜닝,최적화,쿼리최적화,인덱스,MySQLTuner,설정파일,서비스관리,systemctl,ubuntu,debian,centos,rhel,linux,데이터분석,웹서비스,앱개발,개발자,관리자,IT,기술,정보,튜토리얼,가이드,팁

 

관련 포스트 더 보기

2024.10.10 - [리눅스 강의] - 리눅스 Apache 웹서버 설치 완벽 가이드: 초보자도 쉽게!

 

리눅스 Apache 웹서버 설치 완벽 가이드: 초보자도 쉽게!

리눅스 서버를 운영하는데 웹 서버가 빠질 수 없죠? 웹 서버는 여러분의 웹사이트나 웹 애플리케이션을 인터넷을 통해 세상에 공개하는 중요한 역할을 합니다. 그리고 리눅스 환경에서 가장 널

infolily.tistory.com

2024.10.10 - [리눅스 강의] - 리눅스 PostgreSQL 설치 완벽 가이드: 초보자도 쉽게!

 

리눅스 PostgreSQL 설치 완벽 가이드: 초보자도 쉽게!

PostgreSQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 뛰어난 성능과 안정성, 풍부한 기능을 자랑하며 전 세계적으로 많은 사랑을 받고 있어요. 특히 리눅스 환경에서 웹 서버나 애

infolily.tistory.com

2024.10.07 - [리눅스 강의] - 리눅스 파일 시스템 완벽 이해: 저장 & 관리 핵심 정복!

 

리눅스 파일 시스템 완벽 이해: 저장 & 관리 핵심 정복!

포스팅출력리눅스 운영체제를 좀 더 깊이 있게 이해하고 싶으신가요? 그렇다면 리눅스 파일 시스템에 대한 이해는 필수적이에요! 리눅스 파일 시스템은 운영체제의 심장과도 같아서, 여러분의

infolily.tistory.com

2024.10.07 - [리눅스 강의] - 리눅스 사용자 관리, 보안과 효율성의 비밀

 

리눅스 사용자 관리, 보안과 효율성의 비밀

리눅스 시스템을 효율적으로 운영하고 보안을 강화하려면 사용자와 그룹을 관리하는 것이 필수적이에요. 사용자 계정 생성부터 그룹 관리, 권한 설정까지, 이 모든 과정은 시스템의 안정성과

infolily.tistory.com

2024.10.10 - [리눅스 강의] - 리눅스 MySQL 설치 완벽 가이드: 초보자도 쉽게!

 

리눅스 MySQL 설치 완벽 가이드: 초보자도 쉽게!

확인했음데이터베이스 관리 시스템(DBMS) 중에서도 MySQL은 널리 쓰이는 오픈 소스 솔루션 중 하나에요. 웹 개발이나 데이터 분석 등 다양한 분야에서 활용되고 있죠. 특히 리눅스 환경에서는 MySQL

infolily.tistory.com