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 툴을 사용한다.
댓글