본문 바로가기

CentOS

MariaDB 설치하기

MariaDB를 설치해보자. CentOS의 기본 저장소에는 10.3버전이 있는데 현재 최신버전은 10.4.12 버전이다. 최신 버전으로 설치해보자.(10.5 버전은 베타버전이다.)

https://downloads.mariadb.org/

 

Downloads - MariaDB

 

downloads.mariadb.org

 

우선 MariaDB 저장소를 추가해준다.

# cd /etc/yum.repos.d/
# vi MariaDB.repo
# MariaDB 10.4 CentOS repository list - created 2020-02-29 08:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos8-amd64
module_hotfixes=1
gpgkey= https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

저장소에 10.4 버전이 맞는지 확인해본다.

# dnf info MariaDB-server
Available Packages 
Name         : MariaDB-server 
Version      : 10.4.12 
...

 

확인이 되었다면 설치를 한다.

# dnf install MariaDB-server

 

설치가 완료되었다면 DB 초기화 작업이 필요하다. 

mysql이 설치된 경로로 이동한 뒤 시스템 테이블을 생성해주는 DB 초기화 작업을 진행한다.

# mariadb-install-db --user=mysql --basedir=/usr

 

mariadb의 데이터가 /var/lib/mysql 경로에 생성된다. 이제 DB가 실행되는지 확인해보자.

# systemctl start mariadb

 

실행과정에서 에러가 발생하면 journalctl -xe 명령어로 에러 로그를 확인할 수 있다.

[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist 
...
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.db' doesn't exist

이런 에러가 떴다면 시스템 테이블이 생성되지 않았거나, 폴더 권한이 mysql 유저에게 없는 경우이다.

DB에 아무런 데이터가 없는 상태라면 폴더를 지우고 DB초기화 스크립트(mariadb-install-db)를 다시 돌려주면 된다. 만약 데이터가 있는 상태라면 chown을 이용해 권한을 넘겨주자.

# chown -R mysql:mysql /var/lib/mysql

 

이제 root 계정의 패스워드를 변경하고 익명 사용자의 접근을 막아야 한다.

# ./bin/mariadb-secure-installation
...
Enter current password for root (enter for none):

초기 root 패스워드는 없으므로 엔터

OK, successfully used password, moving on... 
...
Switch to unix_socket authentication [Y/n] n

root 패스워드를 사용하기 위해 n을 입력한다.

 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y

패스워드 변경을 위해 Y를 입력한다.

New password: 

Re-enter new password: 

Password updated successfully! 
...
Remove anonymous users? [Y/n] Y 

보안을 위해 익명사용자를 제거한다. Y

 ... Success! 
...
Disallow root login remotely? [Y/n] Y

root 계정의 원격 접속여부이다. 필요시 n, 필요없다면 Y를 선택한다.

 ... Success! 

...

Remove test database and access to it? [Y/n] Y

오라클 DB가 HR DB를 가지는 것처럼 mysql도 test DB가 있단다. 이를 유지할건지 물어본다. 난 필요없으니 Y. 필요하다면 n을 선택한다.

 - Dropping test database... 
...
Reload privilege tables now? [Y/n] Y 

지금까지 설정한 내용을 적용할 것인지 물어본다. Y

 ... Success! 
...
Thanks for using MariaDB!

지겨운 DB 설치가 끝을 맺었다.

 

지금까지 설치하고 설정한 내용이 제대로 적용되었는지 테스트해보자.

# mysql -h 127.0.0.1 -u root -p

 

 

'CentOS' 카테고리의 다른 글

Redis Server 설치하기  (0) 2020.02.29
MariaDB Trouble Shooting  (0) 2020.02.29
SNMP 설치하기  (0) 2020.02.28
JAVA 설치하기  (0) 2020.02.27
git 설치하기  (0) 2020.02.27