ImFe's study

[Linux] CentOS7 - MariaDB10.x - datadir변경 본문

Linux

[Linux] CentOS7 - MariaDB10.x - datadir변경

ImFe 2021. 1. 12. 11:28

MariaDB의 데이터 디렉토리를 /home/mysql-data로 바꿔주는것이 목표입니다.

 

 

/var/lib/mysql이 기본datadir인 상태

sudo systemctl stop mariadb		//mariadb 정지
sudo rsync -av /var/lib/mysql /home/mysql-data		//데이터 복사
sudo chown -R mysql:mysql /home/mysql-data		//소유권 변경

 

 

 

완료되었다면 vi /etc/my.cnf로 아래와 같이 수정

[mysqld]

datadir=/home/data/mysql
#socket=/home/data/mysql/mysql.sock

 

[client]

#socket=/home/data/mysql/mysql.sock
#symbolic-links=0
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

socket부분은 사실 주석처리하는건 아닌데 오류때문에 어쩔수없이 수정했습니다.

 

 

 

 

조용히 켜지나 했는데..

sudo semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"	//selinux 설정
sudo restorecon -R /data/mysql		//보안 context설정
sudo systemctl start mysql		// 서비스 시작. 전 여기서 막혔습니다.

 

 

 

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

에서 ProtectHome=true부분을 주석처리하거나 =false로 수정해줍니다.

 

 

vim /etc/my.cnf.d/server.cnf

으로

[mariadb]
datadir=/home/mysql-data

부분을 수정해줍니다. (맨 뒤에 /붙이면 안됩니다.)



시키는데로 systemctl daemon-reload를 한 후 mariadb를 실행해줍니다.

netstat -nlpt명령어를 통해 mariadb가 잘 작동중인지 확인할 수 있습니다.

 

 

 

rm -R /var/lib/mysql		// 기존 디렉토리 data삭제

모든 과정을 완료 후 필요하다면 기존 데이터를 삭제해줍시다.

Comments