본문 바로가기
Data Base/MariaDB

[MariaDB] : CentOS에서 MariaDB 설치 및 셋팅

by 오주현 2022. 3. 8.
반응형

MySQL 유료화로 인해 개발된 관계형 데이터 베이스

 

코어는 MySQL을 사용해서 MySQL에서 사용하는 쿼리를 그대로 사용할 수 있다. 즉, 그냥 완전 똑같다고 보면 된다.

 

기업들도 MySQL에서 MariaDB로 전환하는 추세이다.

 

vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = <https://mirror.yongbok.net/mariadb/yum/10.6/centos7-amd64>
gpgkey = <https://mirror.yongbok.net/mariadb/yum/RPM-GPG-KEY-MariaDB>
gpgcheck = 1

repo 파일 생성하기

yum install MariaDB-server MariaDB-client

mariadb 설치

systemctl status mariadb

mariadb 상태 확인

systemctl start mariadb

mariadb 실행하기

systemctl enable mariadb

부팅할 때 자동 실행되도록 설정

netstat -ntlp

mysql처럼 3306 포트를 사용한다.

명령어로 포트를 확인해 실행 여부를 체크한다.

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
firewall-cmd --list-all

방화 포트를 열고 방화벽 적용하고 방화벽 확인을 한다. 외부 접속이 허용된 3306 포트를 확인하면 된다. CentOS는 주요 포트를 제외하고 외부 접속을 차단한다.

mariadb

mariadb에 접속한다.

show databases;

mariadb 데이터베이스 조회한다.

status;

접속은 root 계정으로 접속되는 것을 확인할 수 있다.

show databases;

mysql 코어를 사용하고 있어 mysqlDB가 기본적으로 생성되는 것을 확인할 수 있다.

show variables like 'char%';

일부 인코딩이 latin으로 설정되어 한글이 깨지고 있다. 이것을 utf-8로 바꿔줘야 한다.

cd /etc/my.cnf.d/

인코딩 설정 파일 위치이다.

파일은 mysql-client.cnf 와 server.cnf이다.

[mysql]
default-character-set=utf8

[mysql_upgrade]
default-character-set=utf8

mysql-clients.cnf를 수정해 위 두 default를 추가해 준다.

[mysqld]

collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

server.cnf에서 내용을 추가해 준다.

systemctl restart mariadb

mariadb를 재부팅 해준다.

show variables like 'char%';

인코딩 변경을 확인해 본다.

MariaDB 데이터 베이스 생성

create database myDB;

myDB를 생성한다.

show databases;

생성된 myDB 데이터베이스를 확인해 본다.

MariaDB 계정은 내부 접속, 외부 접속 계정으로 구분된다.

내부 접속 계정은 MariaDB가 설치된 CentOS7에 직접 접속하는 계정으로 root와 같고 뒤에 @localhost가 붙는다. = root@localhost

외부 접속 계정은 MariaDB가 설치된 CentOS7에 직접 접속하지 않고 클라이언트 툴, 웹 프로젝트 등 외부 요인으로 접속한다. 예를 들면 web_user와 같고 계정 뒤에 @%가 붙는다. = web_server@%

use mysql;

사용자 생성은 mysql 데이터베이스에서 생성한다.

select host, user, password from user;

사용자를 조회한다.

create user 'web_user'@'%' identified by '1234';

사용자 아이디를 생성한다. 아이디는 web_user이고 비밀번호는 1234로 설정되었다.

grant all privileges on myDB.* to 'web_user'@'%';

flush privileges;

show grants for 'web_user'@'%';

myDB 모든 권한 부여하고 권한 부여 적용하고 권한을 조회한다. 생성한 myDB 데이터베이스의 모든 권한을 부여했다.

클라이언트 툴

콘솔을 통한 MariaDB 관리는 사용성이 떨어져 클라이언트 툴을 사용하면 좋다.

SQL Gate for MariaDB 툴을 사용한다.

반응형

댓글