MariaDB 기본 데이터 디렉토리(Datadir) 위치 변경

    [테스트 환경]
    □ OS : Rocky Linux release 8.5 (Green Obsidian)
    □ DB : 10.6.7-MariaDB


    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 변경]


    STEP04 - 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)

    외부 클라이언트에서도 정상 접속되는 게 확인되었습니다.

    Designed by JB FACTORY