본문 바로가기
HW 프로그래밍/라즈베리파이

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

by N2info 2022. 12. 11.

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

 

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 접

foxydog.tistory.com