MariaDB 설치

설치에 앞서 환경별로 패키지 및 세부 사항이 다르므로 확인이 필요하다

필자의 환경은 Ubuntu 20.04.4 LTS이다.

sudo apt update && sudo apt upgrade -y

우선 apt update를 해서 최신 리스트 정보를 가져온다.

이후 apt upgrade로 업데이트가 필요한 패키지들을 전부 업데이트 해준다.

sudo apt search maria

apt search로 원하는 mariadb 버전을 찾는다.

본문에서는 mariadb-server로 설치를 진행하려고 한다.

버전은 1:10.3.34-0이다.

sudo apt install mariadb-server -y

-y 옵션을 주어서 설치 확인을 스킵한다.

설치가 완료된 이후에 아래 명령어를 넣어서 제대로 설치가 되었는지 확인한다.

sudo apt list | grep 'maria'

이제 설치는 정상적으로 된 것이라 할 수 있다.

이 상태에서도 바로 사용할 순 있지만, 여러가지 설정을 더 해주면 좋다.

 

 

 

환경설정

  1. root 계정 비밀번호 설정
  2. 기본 문자 인코딩 utf8mb4로 변경
  3. 백업 및 디버깅을 위한 Log 설정
  4. root 계정 비밀번호 설정

 

  • root 계정 비밀번호 설정
sudo mysql

설치한 직후 mysql root 계정은 비밀번호가 따로 설정되어 있지 않기에, 별도로 비밀번호를 설정해주는 것이 좋다.

우선 root 권한으로 mysql을 실행한다.

SHOW databases;

나오는 3개의 데이터베이스 중 mysql을 선택해서 user 테이블을 검색한다.

USE mysql;
SELECT Host, User, Password FROM user;

root의 password 칸이 비어있는 걸 확인할 수 있다.

-- MariaDB 10.4 미만
UPDATE user SET password=('사용할 비밀번호') where user='root';

-- MariaDB 10.4 이상
SET password=('사용할 비밀번호');

이제 root 비밀번호가 정상적으로 변경된 것을 확인할 수 있다.

 

  • 기본 문자 인코딩 utf8mb4로 변경

기본적으로 설치가 되면 utf8 또는 utf8mb4로 설정이 되어있을 것이다.

이를 확인하는 방법은 아래 명령어를 mysql 창에서 입력해서 확인하면 된다.

SHOW VARIABLES LIKE 'c%';

필자는 기본적으로 utf8mb4로 되어있다.

만약 위와 같이 설정되어 있지 않다면 /etc/mysql/mariadb.conf.d/ 폴더 아래 있는 .cnf 파일들의 기본 문자 인코딩을 전부 utf8mb4로 설정하면 된다.

50-client.cnf, 50-mysql-clients.cnf

[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4

50-server.cnf

#
# * Character sets
#
# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
# utf8 4-byte character set. See also client.cnf
#
character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci

 

  • 백업 및 디버깅을 위한 Log 설정

/etc/mysql/mariadb.conf.d/ 폴더 아래 있는 50-server.cnf에서 설정 가능하다.

#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file       = /var/log/mysql/mysql.log
#general_log            = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#

log_error는 sql 문 실행 중 발생하는 에러의 내용을 저장할 위치이다.

편한 위치로 설정하고, 나중에 에러 발생시 찾아보면 될 것이다.

#
# Enable the slow query log to see queries with especially long duration
#slow_query_log_file    = /var/log/mysql/mariadb-slow.log
#long_query_time        = 10
#log_slow_rate_limit    = 1000
#log_slow_verbosity     = query_plan
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id              = 1
log_bin                = /var/log/mysql/mysql-bin.log
expire_logs_days        = 90
max_binlog_size        = 100M
#binlog_do_db           = include_database_name
#binlog_ignore_db       = exclude_database_name

log_bin은 Binary Log의 저장 위치이다.

expire_logs_days는 해당 로그를 저장할 기간을 말하며, max_binlog_size는 하나의 로그 파일의 최대 크기를 말한다.

Binary Log란 CREATE, ALTER, DROP, INSERT, UPDATE, REMOVE 등과 같이 데이터를 변경하는 쿼리문을 Binary 형식의 로그로 내보낸 것을 말한다.

추후에 발생할 에러나 장애에도 해당 로그를 바탕으로 롤백할 수 있기에 설정을 해두는 것을 추천한다.

db 운영간에 발생한 로그들

 

 

참고 블로그

'DB > MariaDB' 카테고리의 다른 글

Binary Log를 이용한 MariaDB 롤백  (0) 2022.08.06

+ Recent posts