DBA

개인 학습, 작업 기록용입니다. 올바르지 않은 정보가 있다면 댓글주시면 감사하겠습니다!

DATABASE/Mysql MariaDB

[MariaDB] CentOS 7 - MariaDB 특정 버전 설치하기, 원격 접속 설정

DBnA 2023. 2. 23. 10:43
0. 설치 전 사전작업

MariaDB 설치 전 사전에 필요한 작업 진행

( 필수 항목은 아니지만, 확인해보면 좋을 것 같다. )

#1. CentOS 버전 확인 : 7.X
cat /etc/redhat-release

#2. time존 변경
timedatectl set-timezone Asia/Seoul

  #확인 
date 

#3. CentOS yum update
sudo yum -y update

#4. 네트워크 툴 설치 (필요시 네트워크 명령어를 사용하기 위함)
yum -y install net-tools

 

1. MariaDB 설치 준비 : repo 자동 생성
#최신 버전의 repo 생성
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s

#특정 버전의 MariaDB repo 생성 : --mariadb-server-version 옵션 사용
curl  -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |sudo bash -s -- --mariadb-server-version="mariadb-10.7.5"

기존에 설치된 다른 MariaDB서버를 DR로 구축할 예정이라 

동일 환경인 mariadb-10.7.5 버전으로 repo생성하였다.

 

**24.01.19 ) 오픈소스 특성상 지원 버전이 금새 바뀝니다. OS와 MariaDB  버전 확인해주세요

 

#repo 생성확인
ls -lh /etc/yum.repos.d/

 

cf) 참고

  • yum repository : 
  • curl 명령어 : client url 약자로 프로토콜을 이용해 url로 데이터를 전송하여 데이터 가져오거나 보낼때 사용
  • | (파이프) : 명령어1|명령어2 - 명령어1의 결과가 명령어 2의 입력으로 전달되어 명령어2 결과 출력 

 

 

2. MariaDB server, client 설치
yum install MariaDB-server MariaDB-client

yum을 통해 MariaDB 서버와 클라이언트를 설치해준다.

설치 중간에 총 다운로드 사이즈 안내와 함께 확인여부 물어보면 y 엔터 후 계속 진행

 

1분 정도 경과 후, Complete! 메시지와 함께 설치가 완료됨

 

** 설치 오류시 참고

[MariaDB] CentOS MariaDB 설치 Requires: pv 에러 발생 (tistory.com)

 

[MariaDB] CentOS MariaDB 설치 Requires: pv 에러 발생

yum install epel-release MariaDB 설치 진행 중 에러 발생 MariaDB의 10.11 repo를 생성 후 yum 통해 설치 진행 yum install MariaDB-server MariaDB-client 트랜잭션 체크하고 쭉쭉 진행하다가 Requires: pv 오류 만남 해결방법

bintech.tistory.com

 

 

3. MariaDB 설치 및 버전 확인
#MariaDB 패키지 설치 확인
yum list installed *Maria*

#마리아 설치 후 버전확인 
mariadb --version
mariadb -V

MariaDB 10.7.5 설정한 버전으로 잘 설치되었다. 

 

4. MariaDB 옵션 설정

MariaDB 실행전에 설정파일을 수정해준다.

기본적으로 마리아db의 기본 캐릭터셋은 latin1이다. latin1은 긴 문자열 처리에 제약이 있어 보통 utf-8을 사용한다.

이런 이유로 기본 캐릭터 셋을 utf-8로 설정하는 걸 권장한다.

 

mariaDB의 총 3개의 cnt 파일을 수정해준다.

#server.cnf 파일 수정 
vi /etc/my.cnf.d/server.cnf

 

 > 파일내 [mysqld] 위치에 옵션 구문 추가


    [mysqld]
    lower_case_table_names = 1 -- 대소문자 구분 설정 (1: 미구분)
    collation-server=utf8_general_ci --서버인코딩 설정
    init-connect='SET NAMES utf8'
    character-set-server = utf8
    ##event_scheduler = on
    #sql_mode = "ANSI_QUOTES" --"" 더블 쿼테이션 사용 허용
    

#mysql-clients.cnt 파일 수정
vi /etc/my.cnf.d/mysql-clients.cnf


> 파일내 [mysql], [mysqldump] 위치에 옵션 추가 

    [mysql]
    default-character-set=utf8
    [mysqldump]
    default-character-set=utf8
    

 

#my.cnf 파일 수정
vi /etc/my.cnf

> 파일 내 [client] 와 구문 추가

 

   [client]

   default-character-set = utf8

  

 

5. MariaDB 구동
#MariaDB 실행
systemctl start mariadb

#MariaDB 상태 확인
systemctl status mariadb

MariaDB 서버 정상적으로 올라온 것을 확인

 

6.MariaDB root 패스워드 설정
/usr/bin/mysqladmin -u root password '[설정할 패스워드]'

 

 

7. MariaDB 접속 및 캐릭터셋 확인

 

#MariaDB 접속
mysql -u root -p
#UTF-8로 캐릭터셋 변경 잘 반영되었는지 확인 
show variables like 'c%'

 

quit;

명령어로 MariaDB monitor 빠져나온다

 

8. 부팅시 자동실행 설정

 

#root에서 실행

[root@dbteam01 ~]# sudo systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@dbteam01 ~]# systemctl is-enabled mariadb
enabled

 

설치 및 기본 설정 완료!

 

9. 원격접속 설정  

 

user 정보 확인

 select user, host from user;

기본적인 설치 완료 후 유저 정보를 확인하면 Host가  localhost로 설정되어있음을 확인.

이는 자기 머신에서만 접근이 가능함을 의미한다.

 

외부 원격 접속을 허용하기 위해 Host  에 '%'  로 모든 ip에서 접근이 허용가능한 상태의 계정을 추가해준다.

 

create user 'root'@'%'; 
grant all privileges on *.* to 'root'@'%' identified by '[password]'; 
FLUSH PRIVILEGES;

  *FLUSH PRIVILEGES: DML로 사용자를 추가, 삭제, 권한 변경 등을 진행했을때 변경사항 적용을 위해 사용하는 명령어.

grant 옵션으로 권한 변경시에는 굳이 실행할 필요는 없다.

 

 

9. 원격 접속 확인

 

DBeaver tool 통하여 MariaDB 원격 접속 확인