번개애비의 라이프스톼일

MariaDB의 디렉토리를 수정하여 설치 (CentOS 7.x 기준) 본문

IT

MariaDB의 디렉토리를 수정하여 설치 (CentOS 7.x 기준)

번개애비 2021. 6. 24. 23:16

 

리포지토리를 등록하는 스크립트를 실행한다.

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

 

설치

yum install MariaDB

 

서비스시작

service mysql start

 

서비스시작확인되면, 종료한다.

service mysql stop

 

백업디렉토리를 생성한다.

cd /root

mkdir mysql_bak

 

원래 데이터를 백업디렉토리로 잠시 복사한다. (혹시모르니)

cp -R /var/lib/mysql /root/mysql_bak

 

원래 데이터를 /home의 위치로 이동한다.

rsync -av /var/lib/mysql /home/

 

소유자 권한을 수정한다.

chown -R mysql:mysql /home/mysql

 

접근권한을 수정한다.

chmod 755 -R /home/mysql

 

시스템엑세스권한을 잠시 풀어놓는다.

vi /etc/selinux/config

SELINUX=disabled

 

MariaDB 설정파일에서 디렉토리 경로를 바꾼다.

vi /etc/my.cnf

[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock

[client]
socket=/home/mysql/mysql.sock

 

서비스관리파일에서 디렉토리 제한을 풀어놓는다.

vi /usr/lib/systemd/system/mariadb.service

ProtectHome=true
ProtectHome=false

LimitNOFILE=163840
LimitNPROC=163840

 

시스템데몬을 다시 로드

systemctl daemon-reload

 

서비스시작

service mysql start

 

디렉토리가 변경된 MariaDB 서비스시작이 확인되면, 종료한다.

service mysql stop

 

서버환경에 따라 다르게 튜닝해야한다. (16코어, 32BG RAM 셋팅임으로, 사양에 맞추고 IO성능에 맞춰야한다.)

vi /etc/my.cnf

[client-server]
# custom setting
[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock
port=3306
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
innodb_log_file_size=256M
innodb_buffer_pool_size=4G
innodb_buffer_pool_instances = 10
innodb_write_io_threads = 16
innodb_read_io_threads = 16
max_heap_table_size=24m
tmp_table_size=100m
innodb_sort_buffer_size=64m
#innodb_force_recovery = 4
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
slave-skip-errors=all
skip-name-resolve
read_only=0
key_buffer_size = 768M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 64M
read_buffer_size = 24M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
thread_cache_size = 20

# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 64
max_connections = 4096
table_cache = 10240

# Query Cache
query_cache_limit=16M
query_cache_size=1024M
query_cache_type=1
default_storage_engine=InnoDB
[client]
socket=/home/mysql/mysql.sock
port=3306
default-character-set=utf8
#
# include *.cnf from the config directory
#
!includedir /etc/my.cnf.d

 

MariaDB 서비스를 활성화한다.

systemctl enable mariadb

 

MariaDB를 시작한다.

service mysql start

 

MariaDB의 root 패스워드를 설정한다.

/usr/bin/mysqladmin -u root password ‘설정할패스워드입력’

 

부팅시 자동실행될 수 있도록 설정한다.

chkconfig --level 2345 mysql on

 

(선택사항)

root계정을 외부에서도 접근할 수 있도록 설정할 수 있다.

mysql의 root로 접속한다.

mysql -uroot -p

> 패스워드 입력

 

mysql 데이터베이스로 이동

use mysql;

 

root 계정의 권한정보 수정

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';

 

입력한 설정정보 반영

flush privileges;

Comments