MariaDB를 설치를 하면 기본 데이터 디렉토리[Datadir]가 설치되는 경로는 [/var/lib/mysql] 입니다.
[root@Rocky85 /]# mysql -u root -p [DB 접속]
MariaDB [(none)]> select @@datadir; [기본 데이터 디렉토리 경로 확인]
하지만 기본 데이터 디렉토리의 경우 파일 시스템을 별도로 분리를 하지 않았다면 [ /(ROOT) ] 루트 경로에 설치가 되므로 관리를 하지 않아 해당 경로에 사용량(Use) 100% FULL 발생하게 되면 시스템 문제에 영향을 줄 수 있습니다. 실서버를 운영하게 되면 기본 디렉토리에 설치하는 경우는 거의 없으며 별도의 파일 시스템 경로에 저장을 하므로 위치를 변경할 필요가 있습니다.STEP01 - MariaDB 중지 및 데이터 디렉토리를 이전할 새 위치로 복사[권고] 또는 이동
※ 이동하는 것보다는 문제가 발생했을 경우 복원을 위해 복사를 하는 게 좋습니다.
① MariaDB 중지
[root@Rocky85 /]# systemctl stop mariadb [중지]
[root@Rocky85 /]# systemctl status mariadb | grep -i active [상태 확인]
Active: inactive (dead)
② 이전할 디렉토리 생성 후 디렉토리 데이터 복사
[root@Rocky85 /]# mkdir /home/mariadb
[root@Rocky85 /]# rsync -av /var/lib/mysql /home/mariadb
③ 데이터 복사 확인
[root@Rocky85 /]# ll /home/mariadb/mysql/
④ 상위 폴더도 mysql 권한 부여
[root@Rocky85 /]# chown mysql:mysql /home/mariadb
[root@Rocky85 /]# ll /home | grep mariadb
drwxr-xr-x 3 mysql mysql (권한 확인) 4096 3월 29 00:24 mariadb
※ 또는 CP를 이용하여 복사[편한 방법을 이용]
[root@Rocky85 /]# mkdir -p /home/mariadb/mysql
[root@Rocky85 /]# chown -R mysql:mysql /home/mariadb
[root@Rocky85 /]# cp -R -p /var/lib/mysql/* /home/mariadb/mysql
STEP02 - MariaDB 디렉토리 구성(위치) 변경
기본 경로 [/etc/my.cnf]이나 아래와 같이 인클루드 걸려 있다면 해당 폴더의 환경설정 파일을 불러옵니다. ※아래의 값을 [my.cnf] 파일에 저장해도 상관은 없습니다.
[root@Rocky85 /]# vi /etc/my.cnf.d/server.cnf [추가 후 저장]
[mysqld]
datadir=/home/mariadb/mysql
socket=/home/mariadb/mysql/mysql.sock
[client]
port=3306
socket=/home/mariadb/mysql/mysql.sock
STEP03 - MairaDB /root /home 디렉토리 접근 허용
[root@Rocky85 ~]# vi /usr/lib/systemd/system/mariadb.service [MariaDB 기본 실행 파일 열기]
ProtectHome=false [true ▶ false 변경]
STEP0 - MariaDB 최종 구동 및 디렉토리 변경 확인
① MariaDB 구동
[root@Rocky85 ~]# systemctl start mariadb
Warning: The unit file, source configuration file or drop-ins of mariadb.service changed on disk. Run 'systemctl daemon-reload' to reload units. [서비스 구성 파일을 수정 후 바로 시작하면 나오는 메시지]
[root@Rocky85 ~]# systemctl daemon-reload [리로드]
[root@Rocky85 ~]# systemctl start mariadb [최종 서비스 시작]
[root@Rocky85 ~]# ps -ef |grep mariadb [서비스 구동 확인]
mysql 2457 1 2 02:07 ? 00:00:00 /usr/sbin/mariadbd
② 데이터 디렉토리 위치 변경 확인
[root@Rocky85 ~]# mysql -u root -p
MariaDB [(none)]> select @@datadir;
③ 데이터베이스 생성 확인(테스트)
MariaDB [(none)]> create database foxydog;
※ 데이터베이스를 생성하여 이전한 데이터 디렉토리 위치에 폴더 및 파일이 생기는지 확인
마지막으로 원격 접속에도 문제가 없는지 테스트하기 위해 root@원격IP를 추가합니다.
MariaDB [mysql]> grant all privileges on *.* to 'root'@'원격지IP' identified by '패스워드';
Query OK, 0 rows affected (0.001 sec)
외부 클라이언트에서도 정상 접속되는 게 확인되었습니다.
원본출처 : https://foxydog.tistory.com/98