IT/MySQL

MySQL 8 DATA 위치 이동하기

SEON'S 2023. 3. 30. 20:38
728x90

MySQL 8 DATA 위치이동(경로변경) 방법

MySQL 8 DATA 위치이동 제목 화면

 

  MySQL 데이터베이스를 사용하다보면 디스크 공간부족 등 다양한 이유로 기본경로에서 다른 경로로 이동해야하는 경우가 발생합니다. 이때 SELinuxdisabled 라면 복사후 설정파일만 변경하면 바로 실행이 되겠으나, SELinux를 사용한다면 context 추가작업이 필요합니다. 여기서는 SELinux 환경에서 MySQL 8 기본 데이터 경로에서 다른 경로로 이동하는 방법을 확인해보겠습니다.

 

  • MySQL SELinux context 확인
  • MySQL 종료
  • 데이터 폴더 이동 및 복사
  • my.cnf 수정
  • SELinux context 추가
  • MySQL 실행
  • 테스트

 

MySQL SELinux context 확인

MySQL 데이터 디렉토리의 SELinux context 를 확인

MySQL 8 데이터베이스의 기본경로는 /var/lib/mysql 이며 selinux contextmysqld_db_t 입니다.

ls -ldZ /var/lib/mysql

기본경로의 SELinux context 이미지

MySQL 종료

데이터 복제를 위해 MySQL을 종료합니다.

systemctl stop mysqld

데이터 이동 및 복사

원본데이터가 영향을 받으면 안되니 디렉토리 명을 변경하겠습니다

mv /var/lib/mysql /var/lib/mysql_org

mv 명령어 실행결과

원본데이터를 대상 디렉토리로 복사합니다.

파일의 퍼미션 소유권까지 한거번에 복사합니다.

cp -arp /var/lib/mysql_org /DATA/mysql_data

복사 명령어 실행결과 화면

 

my.cnf 파일 수정

변경된 데이터 디렉토리 경로 수정을 위해 /etc/my.cnf 파일을 편집기로 수정합니다.

vi /etc/my.cnf
[mysqld]
datadir=/DATA/mysql_data
socket=/DATA/mysql_data/mysql.sock

#- client 내용이 없다면 추가 
[client]
socket=/DATA/mysql_data/mysql.sock

SELinux context 추가

변경된 데이터 디렉토리의 SELinux Context 를 추가 매핑해줍니다.

semanage fcontext -a -t mysqld_db_t "/DATA/mysql_data(/.*)?"

semanage 명령어 실행결과 화면

매핑한 context re-label 실행

restorecon -R -v /DATA/mysql_data

restorecon 명령어 실행결과

이제 다되었습니다.

 

MySQL database 실행

MySQL database를 실행합니다.

systemctl start mysqld

mysql 실행결과 화면

MySQL에 접속하여 정상작동을 확인합니다.

mysql -u root -p

mysql 접속화면

show databases;

show databases; 테스트 화면

사용하던 database가 조회 된다면 정상적으로 이관이 된것입니다. 

 

 

도움이 되셨다면 공감 / 구독 부탁드립니다.

 

 

감사합니다.

 

MySQL 8 설치가 궁금하시다면 아래 링크를 열어보세요

2023.03.27 - [IT/MySQL] - Rocky Linux 8에 MySQL 8 설치해봅시다

 

Rocky Linux 8에 MySQL 8 설치해봅시다

Rocky Linux 8에 MySQL 8 설치 dnf(yum)을 이용하여 MySQL 8을 설치해보자 MySQL 8 설치하기 MySQL의 무료로 사용이 가능한 버젼은 MySQL Community Server 버젼입니다. MySQL Community Server를 dnf(yum) 설치방식으로 설치

blife.tistory.com

 

반응형