MySQL 8 DATA 위치이동(경로변경) 방법
MySQL 데이터베이스를 사용하다보면 디스크 공간부족 등 다양한 이유로 기본경로에서 다른 경로로 이동해야하는 경우가 발생합니다. 이때 SELinux가 disabled 라면 복사후 설정파일만 변경하면 바로 실행이 되겠으나, 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 context는 mysqld_db_t 입니다.
ls -ldZ /var/lib/mysql
MySQL 종료
데이터 복제를 위해 MySQL을 종료합니다.
systemctl stop mysqld
데이터 이동 및 복사
원본데이터가 영향을 받으면 안되니 디렉토리 명을 변경하겠습니다
mv /var/lib/mysql /var/lib/mysql_org
원본데이터를 대상 디렉토리로 복사합니다.
파일의 퍼미션 소유권까지 한거번에 복사합니다.
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(/.*)?"
매핑한 context re-label 실행
restorecon -R -v /DATA/mysql_data
이제 다되었습니다.
MySQL database 실행
MySQL database를 실행합니다.
systemctl start mysqld
MySQL에 접속하여 정상작동을 확인합니다.
mysql -u root -p
show databases;
사용하던 database가 조회 된다면 정상적으로 이관이 된것입니다.
도움이 되셨다면 공감 / 구독 부탁드립니다.
감사합니다.
MySQL 8 설치가 궁금하시다면 아래 링크를 열어보세요
2023.03.27 - [IT/MySQL] - Rocky Linux 8에 MySQL 8 설치해봅시다
'IT > MySQL' 카테고리의 다른 글
MySQL 8 신규 데이터 디렉토리 초기화 설정하기 (0) | 2023.03.30 |
---|---|
MySQL 8 외부(원격) 접속 설정하기 (0) | 2023.03.28 |
MySQL 설치 후 바로 사용하기 위한 빠른 기초 설정 (0) | 2023.03.28 |
Rocky Linux 8에 MySQL 8 설치해봅시다 (0) | 2023.03.27 |