본문 바로가기
Work/DataBase

[Server] Centos7 - MariaDB 10.4.17 설치 (yum 사용)

 

DB설치전에 검토사항들이 많이있다.

어떤 버전으로 설치할것인지

내가 사용하는 리눅스 버전에 맞게, 설치하려는 버전에 맞게 Repo를 설정하고 설치해야한다.

필자의 서버는 Centos 7.8이며, MariaDB v.10.4.17를 설치 예정이다.

 

1. 리눅스 버전확인

rpm --query centos-release

cat /etc/centos-release

cat /etc/system-release


가장먼저 위 3가지중 1개방법으로 버전을 확인합니다

 

 

2. 해당 리눅스 버전에 맞는 Maria repoURL 찾기

https://downloads.mariadb.org/mariadb/repositories

 

MariaDB - Setting up MariaDB Repositories - MariaDB

To generate the entries select an item from each of the boxes below. Once an item is selected in each box, your customized repository configuration will appear below. 1. Choose a Distro SLES openSUSE Arch Linux Mageia Fedora CentOS RedHat Mint Ubuntu Debia

downloads.mariadb.org

나의 서버 버전에 맞게, 원하는 설치 버전을 선택하면 아래에 

Repo에 등록해야하는 내용과

어떤 명령어를 때려야 설치되는지 알려준다. (So Kind!)

 

10.4.17은 안보이니 직접 URL로 들어가 찾아보자.

yum.mariadb.org/10.4.17/centos7-amd64/

중간에 10.4말고 10.4.17 디렉토리가 있었다.

 

3. Repo 등록

이제 /etc/yum.repos.d/ 밑에 MariaDB.repo 이름으로 url을 등록해보자.

sudo vi /etc/yum.repos.d/mariadb.repo
# MariaDB 10.4 CentOS repository list - created 2021-01-27 09:52 UTC
# http://downloads.mariadb.org/mariadb/repositories/

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4.17/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

 

4. MariaDB-server,   Client 설치 

sudo yum install MariaDB-server MariaDB-client

 

설치후 버전 확인

 

 

 

5. 실행 전,  MariaDB 설정 Setting

MariaDB는 MySQL과 달리 Server와 Client  설정파일이 따로 존재한다.

이곳에서 인코딩과, 대소문자 구분등을 설정하고 실행하자!

(설정없이 db,스키마,계정 등을 만들면 초기화가 필요해진다)

 

5-1. Servewr.cnf 수정

1. 여기서 대소문자 구분하지않기 위해 lower_case_table_names=1 설정

2. 서버 인코딩설정을 위한 character-set-server=utf8mb4 , collation-server=utf8mb4_bin 줄 추가

3. 커밋된 데이터만 읽기위해 autocommit=0  설정을 해줍니다.

4. sql_mode에 ANSI_QUOTES (더블 코텐션) 사용을 위해, 값 추가.

STRICT_TRANS_TABLES을 제거하고 최대한 비엄격모드로 사용하도록 값들을 넣어준다.

sql_mode="ANSI_QUOTES,ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

 

vi /etc/my.cnf.d/server.cnf

 

2. mysql-clients.cnf

Client 설정파일에서는 client, dump 인코딩에 대해서만 설정해줍니다.

vi /etc/my.cnf.d/mysql-clients.cnf

 

# "utf8", "utf8mb4" 차이

문자 집합은 "utf8", "utf8mb4"두 가지가 주로 많이 쓰이며
"utf8"은 최초 mysql 설계시 utf8 규격에 4byte에 할당 된 문자가 없어 3byte로 설계 되었으나
최근 4byte에 할당 된 문자 (이모티콘 문자)가 면서 4 바이트 확장을 위해 utf8mb4를 추가했습니다.
utf8 규격과 거리 "utf8mb4"로 접근 할 것을 권장하고있다.

 

6. Maria 실행

-- 실행 시작
sudo systemctl start mariadb

-- 실행 상태 확인
sudo systemctl status mariadb

-- root 비번 초기화 (최초 1회 가능)
sudo mysql_secure_installation

처음은 root 패스워드 설정하겠느냐 Y를 누르면 설정하실 수 있습니다.
그 다음 질문은 anonymous users 를 삭제하겠느냐는 질문입니다.
그 다음은 원격지에서 root로그인을 허용하겠느냐는 질문입니다. 
기본으로 누구든지 access할수 있는 Test db 를 삭제하겠냐는 질문입니다.
마지막 질문은 설정한 권한 모두 리로드해서 적용하겠냐는 질문입니다


-- 서버 재기동시 자동시작
sudo systemctl enable mariadb

 

 

 

+ 설정한 값이 제대로 반영되었는지 확인해보자

 

인코딩 조회

-- maria 접속
mysql -uroot -p비밀번호

-- 인코딩 확인
status

 

SQL_MODE 값 조회

-- sql_mode값 확인 
 SELECT @@global.sql_mode;

 

lower_case_table_names 변수 값 조회

-- lower_case_table_names 값 확인 
show variables like 'lower%';

 

 

 

 

+++ 추가적으로 궁금한것들이 잘 정리된 사이트 입니다.

mysql server 설정시 다양한 내용을 확인가능 louky0714.tistory.com/entry/DATABASE-MariaDB-103xx-Install-binary

인코딩 설정에 대한 내용 slobell.com/blogs/38

제일 깔끔하게 잘 정리된 사이트 - 원문 작성에 많이 참고된 사이트 puttico.tistory.com/150

 

 

다음번엔, DB생성, 계정생성, 접속 권한부여 등에 대해서 작성하겠습니다.