CentOS 7, MariaDB 설치 방법


2~3년에 한번 가량으로 CentOS를 새로 설치하는데…
매번 새로 설치해할때마다 어떻게 설정/세팅했는지 기억이 안나 고생하네요.

그래서 이번만큼은 새로 설치하면서 흔적을 남겨봅니다.

centos 7.0 설치 후 MariaDB 설치/설정 방법입니다.

※ 참고로 필자도 리눅스 잘 모릅니다. 구글링의 해택을 누릴뿐…


MariaDB 설치를 위한 사전 작업
MariaDB를 참조해보면 Stable version 설치 방법이 있습니다.
주소 – https://downloads.mariadb.org/mariadb/repositories

위에 싸이트를 참조해~ 입력 이후 아래 내용을 입력합니다.

vi /etc/yum.repos.d/MariaDB.repo

# MariaDB 10.1 CentOS repository list - created 2016-10-01 19:32 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

그리고 저장! 저장은 ‘esc’ 키 입력 후 ‘:wq’ 혹은  ‘:w’ 이후 ‘:q’!

이제 설치 준비는 끝났으니 설치를 시작합시다!


MariaDB 설치

sudo yum install MariaDB-server MariaDB-client

여기까지가 mariadb 홈페이지에 나온 설치 매뉴얼 내용!


MariaDB 실행 방법

systemctl start mariadb


MariaDB 접속!
제대로 설치가 되었는지 확인해 봅시다.
참고로 mariadb가 mysql에서 파생해서 그런지 접속은 mysql과 동일합니다.

mysql u root mysql

제대로 접속이 되면 아래와 같이 화면이 바뀜!

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.18-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [mysql]>

그러면 관리자 패스워드를 변경합시다.

# SET PASSWORD FOR root@localhost=PASSWORD(‘패스워드’);
# flush privileges; ← 내부 캐쉬 메모리 초기화!


서비스 등록
제대로 설치가 된것을 확인했으니, 이제 서비스에 등록합시다.

systemctl enable mariadb

systemctl start mariadb


db 확인
mysql 접속 이후 ‘show databases;’를 통해 목록을 확인하면

MariaDB [mysql]> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
4 rows in set (0.00 sec)

위와 같이 사용한적이 없는 테이블도 뜹니다.
그러니 바로 지웁시다!

MariaDB > drop database test;
MariaDB > flush privileges;


MariaDB (mysql) 접속 방법

mysql -h 접속 주소 -u 아이디 -p

예제 ) mysql -h localhost -u root -p


비밀번호 분실 시 비밀번호 초기화 방법

서비스를 멈추고 안전모드 실행!

systemctl stop mysql

/usr/bin/mysqld_safe –skip-grant mysql -u root -p

패스워드를 물으면 그냥 엔터를 입력해 mysql 모드 진입!
mysql > use mysql
mysql > update user set password=password(‘신규 패스워드’) where user=’root’;
mysql > flush privileges;
mysql > exit;

mysql 모드에 나왔으니 서비스 재실행~
# systemctl reload mysql

※ 재실행이 제대로 안되서 reboot가 필요할때도 있음.


DB 한글 값이 ???로 출력되는 경우

mysql -u 계정 -p

를 통해 로그인 된 이후

MariaDB> show variables like ‘c%’; 를 입력한다.

MariaDB [(none)]> show variables like ‘c%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
+————————–+—————————-+

‘character_set_database’이 ‘utf8’이 아니라 ‘latin1’이라 그럼…

vi /ect/my.cnf 파일을 수정

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

[mysqld]
character-set-server=utf8

systemctl restart mysql 이후 mysql을 다시 실행 시키고 다시 mysql로 접속 후 MariaDB> show variables like ‘c%’; 를 확인해보면

MariaDB [(none)]> show variables like ‘c%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
+————————–+—————————-+

전부 utf8로 뜨는걸 볼 수 있습니다. 해결!