Programing/Database

[Mariadb] ubuntu 18.04 마운트된 폴더로 데이터 디렉토리 지정

개발자 2021. 2. 9. 10:14
반응형

blog.naver.com/PostView.nhn?blogId=kimmingul&logNo=221435631031

 

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

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

blog.naver.com

[출처] [MariaDB] MariaDB의 Data 위치 변경하기 (CentOS 7 기준)|작성자 김민걸

 

SSD가 128GB밖에 안되어서 하드 장착 후 마운트된 폴더로 디렉토리 지정 성공

블로거님께 감사합니다!

 

ubuntu 18.04, mariadb 10.5 버전에 설치 완료

 

1) MariaDB 의 data 위치 확인

mysql -u root -p

로 mariadb에 접속한 후, (보안설정 안했을 시 mysql만 입력)

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

[출처] [MariaDB] MariaDB의 Data 위치 변경하기 (CentOS 7 기준)|작성자 김민걸

 

시골의사의 취미생활 : 네이버 블로그

시골의사 놀이터 공부한 것들을 잊지 않으려 끄적끄적

blog.naver.com

아 근데... 하다가

Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details. 오류 ? 무엇..

 

journalctl -xe 를 쳐보니

"MariaDB can't create test file lower-test"오류가 났었어요

 

해당사항은

 

systemctl daemon-reload

systemctl start mysql

입력 후

동일증상 시

 

vi /lib/systemd/system/mariadb.service

에서  ProtectHome=true 부분을 false로 변경 후

systemctl daemon-reload

systemctl start mysql

입력으로 해결


+-------------------+
| @@datadir         |
+-------------------+
| /home/data/mysql/ |
+-------------------+

정상적으로 변경 되었습니다.

반응형