MYSQL
HOME > DB > MYSQL
2023.06.26 / 09:11

[MariaDB] MariaDB의 Data 위치 변경하기 (CentOS 7 기준)

디도스
추천 수 44

CentOS 7에서 설치되는 MariaDB 5.5는 기본적으로 /var/lib/mysql에 DB 가 저장된다.

이 DB 경로가 root 파티션에 해당되는데, 이로인해 파티션 용량부족 상황을 초래할 수 있기에 data위치를 변경할 필요가 있다.

0) MariaDB 의 data 위치 확인

mysql -u root -p

로 mariadb에 접속한 후,

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select @@datadir;

+-------------------+

| @@datadir |

+-------------------+

| /var/lib/mysql/ |

+-------------------+

1 row in set (0.01 sec)

MariaDB [(none)]>

1) MariaDB 서비스 정지

sudo systemctl stop mariadb

2) 새로운 Data 디렉토리 생성 및 데이터 복사하기

(Data 디렉토리를 /home/data/mysql 로 한다는 가정 하에)

sudo mkdir /home/data/

sudo rsync -av /var/lib/mysql /home/data/

sudo chown -R mysql:mysql /home/data/mysql

3) my.cnf 파일을 수정하여 MariaDB의 data 디렉토리 경로 변경

sudo vi /etc/my.cnf

[mysqld]

datadir=/home/data/mysql

socket=/home/data/mysql/mysql.sock

[client]

socket=/home/data/mysql/mysql.sock

#symbolic-links=0

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

4) SELinux 보안 context 추가 및 서비스 시작

sudo semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"

sudo restorecon -R /data/mysql

sudo systemctl start mysql

5) 변경된 data 디렉토리 확인하기

mysql -u root -p

로 mariadb에 접속한 후,

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select @@datadir;

+-------------------+

| @@datadir |

+-------------------+

| /home/data/mysql/ |

+-------------------+

1 row in set (0.01 sec)

MariaDB [(none)]>

6) 기존 data 디렉토리 삭제하기

sudo rm -R /var/lib/mysql

삭제한 후, 하드디스크의 저장용량 확인은 df 로.

df