top of page
Home

MariaDB(MySQL) 설치하기

작성자 사진: 김영찬김영찬

다음 내용을 Linux(CentOS)에서 MariabDB DBMS를 설치하는 방법을 설명합니다. MySQL과 MariaDB도 거의 동일한 절차를 거칩니다.(설치후 초기화만 다름)


아래 내용은 MariaDB 10.7.1을 기준으로 하나 yum.mariadb.org 사이트에서 다른 버전을 확인하여 설치할 수 있습니다.



/ MariaDB 삭제

  • yum list installed mariadb* // 설치된 mariadb 패키지 목록 표시

  • yum remove -y MariaDB* // 설치된 모든 MariaDB 패키지 삭제



// MariaDB yum repository 설정

  • yum.mariadb.org에서 최신 버전 확인, repository URL 확인

  • 아래와 같이 local yum repository에 최신 버전 MariaDB yum directory 설정 및 다운로드

  • 이렇게 하지 않으면 다른 버전이 설치됨(혹은 이 정보로 local repository 구성)

// /etc/yum.repos.d/MariaDB.repo 파일 등록(mariadb.org로 부터 설치)

  • [mariadb]

  • name = MariaDB

  • baseurl=http://https://yum.mariadb.org/10.7.1/centos/7/x86_64/

  • gpgkey=http://yum.mariadb.org/RPM-GPG-KEY-MariaDB

  • gpgcheck=1

  • baseurl의 모든 내용을 local repository server의 MariaDB 폴더로 복사한뒤 repo 파일 구성도 고려

// yum repolist | grep MariaDB // repositroy에 MariaDB가 있는지 확인

// yum install MariaDB // 위의 MariaDB.repo에서 name으로 설정한 이름이 와야함. mariadb로 하면 안됨

Dependencies Resolved

========================================================================================

Package Arch Version Repository Size

========================================================================================

Installing:

MariaDB-compat x86_64 10.6.4-1.el7.centos mariadb 2.2 M

replacing mariadb-libs.x86_64 1:5.5.68-1.el7

MariaDB-devel x86_64 10.6.4-1.el7.centos mariadb 8.1 M

replacing mariadb-devel.x86_64 1:5.5.68-1.el7

MariaDB-server x86_64 10.6.4-1.el7.centos mariadb 25 M

Installing for dependencies:

MariaDB-client x86_64 10.6.4-1.el7.centos mariadb 14 M

MariaDB-common x86_64 10.6.4-1.el7.centos mariadb 81 k

galera-4 x86_64 26.4.9-1.el7.centos mariadb 9.6 M

libpmem x86_64 1.5.1-2.1.el7 base 59 k

socat x86_64 1.7.3.2-2.el7 base 290 k

Transaction Summary

========================================================================================

Install 3 Packages (+5 Dependent packages)

// MariaDB 설치 파일 다운로드

  • yum install --downloadonly --downloaddir=/root/mariadb MariaDB-server.x86_64

  • 외부망에서 다운로드한 rpm 패키지로 내부망에 Local Repository 구성 및 설치(위의 dependancy 목록에서 역순으로 설치)

  • rpm 설치 : rpm -ivh [rpm 파일]

  • rpm 업데이트 : rpm -Uvh [rpm 파일]

  • rpm 설치 확인 : rpm -qa | grep MariaDB

// MariaDB 설치 정보 확인

  • rpm -qa | grep MariaDB

  • MariaDB-common-10.6.4-1.el7.centos.x86_64

  • MariaDB-devel-10.6.4-1.el7.centos.x86_64

  • MariaDB-client-10.6.4-1.el7.centos.x86_64

  • MariaDB-compat-10.6.4-1.el7.centos.x86_64

  • MariaDB-server-10.6.4-1.el7.centos.x86_64

// MariaDB 데몬 실행 및 서비스 등록

  • systemctl start mariadb

  • systemctl enable mariadb

  • systemctl status mariadb

  • netstat -anp | grep 3306 // 3306 포트에 실행중인지 확인

// MariaDB 서버가 실행되지 않는 경우 원인 파악 방법

  • tail -f /var/log/messages // 실시간으로 서버의 로그 메시지

  • journalctl -xe // 실패한 서버스의 로그 메시지

  • systecmctl status mariadb.service // mariadb 서버스의 상태

// MariaDB 방화벽 포트 설정(기본 포트 3306)

  • firewall-cmd --permanent --add-port=3306/tcp

// MariaDB root 비밀번호 변경

  • /usr/bin/mysqladmin -u root password '비밀번호' // 입력한 '비밀번호'로 변경

// MariaDB client mysql 접속 및 정상 설치 테스트

  • mysql -u root -p // 변경한 비밀번호로 MariaDB Client 실행

  • mysql -h localhost -u root -p -Dmysql // 변경한 비밀번호로 MariaDB Client 실행

  • MariaDB > show databases;

  • MariaDB > use mysql;

  • MariaDB > show tables;

// 초기 불필요 계정 삭제

  • MariaDB > select host, user, password from user;

  • MariaDB > delete from user where password=''; // 필요시 불필요한 계정 삭제

// MariaDB 설정 및 Characteret 변경(Cloudera CDP는 utf8, 일반 개발은 utf8mb4로 설정)

  • mysql -u root -p

  • MariaDB > SHOW VARIABLES LIKE 'char%'; // 현재 characterset 설정 확인

  • MariaDB > status

  • /etc/my.cnf에 다음 내용 설정(정밀 설정은 CDP 설치 - CDP Prerequsite MariaDB 설치 참조)

# Mariadb General Settings

[mysqld]

default_storage_engine=innodb

skip-character-set-client-handshake

init-connect="SET collation_connection = utf8mb4_unicode_ci"

init-connect="SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

lower_case_table_names=1

# Mariadb General Settings

[client]

port=3306

default-character-set = utf8mb4

# Mariadb General Settings

[mysqldump]

default-character-set = utf8mb4

# Mariadb General Settings

[mysql]

default-character-set = utf8mb4

// MariaDB(MySQL) Characterset 관련 변수

  • character_set_system (설정 불가능 변수) MySQL 서버가 Identifier를 저장할 때 사용하는 Character set이며, 이 값은 섧정 불가능하고 항상 utf8로 설정되어 있다

  • character-set-server MySQL 서버의 기본 Character set

  • character_set_client MySQL 클라이언트의 기본 Character set

  • character_set_connection 쿼리 문장에서 인트로듀서가 없는 리터럴 또는 Number를 String으로 변환할 때 사용하는 Character set

  • character_set_database MySQL 데이터베이스의 Default Character set

  • character_set_filesystem LOAD DATA INFILE ... 또는 SELECT ... INTO OUTFILE 문장이 실행될 때, 파일의 읽고 쓰기에 사용되는 Character set

  • character_set_results MySQL 서버가 쿼리의 처리 결과를 클라이언트로 보낼 때 사용하는 Character set

// MariaDB 데몬 재실행

  • systemctl restart mariadb

  • systemctl status mariadb

  • mysql -u root -p

  • MariaDB > SHOW VARIABLES LIKE 'char%'; // 현재 characterset 설정 확인

  • MariaDB > status

  • characterset 설정 재 확인

// MariaDB Secure Installation

  • /usr/bin/mariadb-secure-installation 실행

  • 아래 항목을 'Y'로 설정 // 나머지는 n로 설정(

Remove anonymous Users ? Y, Disallow root login remotely ? Y, Remove test database ? Y, Reload privileage tables ? Y

  • mysql의 경우 /usr/bin/mysql_secure_installation으로 이름이 다름

// DB 사용자 생성

  • CREATE USER '[user_name]'@'%' IDENTIFIED BY 'password'; // 비밀번호를 갖는 계정 생성

CREATE user 'movie'; set password for 'test' = password('test00');

CREATE user 'movie'@'%' identified by 'test00';

  • CREATE USER '[user_name]'@localhost IDENTIFIED VIA mysql_native_password; // 비밀번호 보안 인증 방식의 계정 생성

  • CREATE USER '[user_name]'@'127.0.0.1' IDENTIFIED VIA unix_socket USING 'invalid'; // unix_socket 보안 인증 방식의 계정생성

  • CREATE USER '[user_name]'@'%' IDENTIFIED VIA unix_socket OR mysql_native_password USING 'invalid'; // 둘다 사용, 모든 IP 접근 허용

CREATE USER 'movie'@'localhost' IDENTIFIED VIA mysql_native_password;

  • use mysql // 직접 System Table에 등록하는 방법

  • insert into user(host, user, password) values('localhost', 'hadoop', password('futuresoft#00')); // CREATE 문 대신에 직접 사용자 생성

// 생성한 MariaDB 사용자 계정의 상태 확인

  • select host, user, password, plugin from mysql.user;

// DB 계정 비밀번호 설정select

  • select user(); // 로그인한 계정을 확인

  • set password = password('12345678'); // mysql 로그인 계정의 암호 설정

  • set password for [user_name]@'[ip]' = password('12345678'); // 다른 계정의 비밀번호를 설정

  • set password for 'movie'@'localhost' = password('test00');

// 사용자 삭제

  • drop user test; // host가 '%'인 경우

  • drop user 'movie'@localhost; // host가 지정된 경우

// DATABASE 생성

  • MariaDB > create database 'database name' default character set utf8mb4;

  • MariaDB > create database movielens default character set utf8mb4;

  • MariaDB > create database movielens;

  • MariaDB > show databases;

// Database에 사용자 권한 설정

  • MariaDB > grant all privileges on 'database name'.* to '계정명'@'%' identified by '계정비밀번호';

  • MariaDB > grant all privileges on *.* to \[user_name]'@'[ip]';

  • MariaDB > grant all privileges on hadooptest.* to 'hadoop'@'localhost';

  • MariaDB > grant all privileges on movielens.* to 'movie'@'%'; // movielens database에 대한 모든 권한을 movie 계정에 부여

  • mysql -u movie -D movielens -p; // movie 사용자로 로그인해서 movielens 데이터베이스 사용

// 사용자 계정 정보 변경시 재시작 없이 reload

  • MariaDB > flush privleges;

// 계정을 삭제

  • drop user '[user_name']'@'[ip]';

  • drop user test1;

  • drop user 'hadoop'@localhost;

  • drop user 'movie'@'%';

// 원격 서버에 MySQL client(mysql) 설치

  • yum install mariadb // mysql utility 설치

  • mysql -h cms.futuresoft.co.kr -P 3306 -u oozieuser -ppassword -D oozie로 테스트

 
 
 

Comments


Contact Us

연락주셔서 감사합니다 !

14057

경기도 안양시 동안구 벌말로 126, 2402-1호

(관양동, 평촌오비즈타워)

Tel. 02-555-8422

Copyright © 2020 by Futuresoft Co., Ltd.

bottom of page