linuxk-layouts
MariaDB Archives
Apache Source Code
3
4
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

- Signature

안녕하세요 리눅스 커뮤니티 한국 리눅스 입니다.

linux korea