상세 컨텐츠

본문 제목

MySQL 용량 문제로 폴더 바꾸기.. 출처 : PHPLEADER

IT/Linux & MySQL & PHP

by redsynn 2012. 2. 20. 11:13

본문

문제 발생 ]

   현재 나의 시스템에서 mysql의 데이타 디렉토리(/usr/local/mysql/var) 가 속한 파티션이
   100%찼다. 그래서 mysql 데이타가 쌓이는 위치를 바꾸어야한다.

[ 해결 방법 ]

   1. 여유공간이있는 파티션에 심볼릭 링크걸기
   2. 여유공간이있는 파티션으로 mysql 데이타 저장 위치를 지정하기
   3. 새로운 하드디스크를 추가하여 추가된 공간을 mysql/var 디렉토리로 마운트하기

   여기에서는 2번 내용에있는 방법을 설명하도록 하겠습니다.

[ 해결 하기 ]

   [root@soma]# df -h

   Filesystem            Size  Used Avail Use% Mounted on
   /dev/sda8             2.0G   77M  1.8G   4% /
   /dev/sda1              49M  1.9M   45M   4% /boot
   /dev/sda5             2.9G  6.1M  2.7G   1% /home
   /dev/sda6             2.9G  2.9G     0 100% /usr   -> full

   위에서 보는것처럼 /usr 파티션이 100% 이기 때문에 더이상 이 파티션에는 데이타를 저장
   할수 없게 되었다.
   /usr 파티션이 full 나게되면 apache 역시 문제가 발생하게된다. 
   여기서는 다른 서비스에는 관심을 가지지 않겠습니다.
   mysql 에 대한 내용만 설명하도록 하겠습니다.
   
   여기서는 /home 파티션으로 mysql 데이타 디렉토리를 변경하도록 하겠습니다.
    
   1. /home 디렉토리 안에 new_var 란 디렉토리 만들기

      [root@soma]# cd /home
      [root@soma home]# mkdir new_var

   2. mysql 데몬죽이기 - 더이상의 정보변화를 없에기 위해서

      [root@soma]# killall mysqld

      [root@soma]# 021015 17:12:55  mysqld ended

   3. /usr/local/mysql/var 에있든 모든 파일을 /home/new_var 디렉토리로 옮기기
       덧글 : CentOS 는 /var/lib/mysql/ 임. 



      [root@soma]# cd /usr/local/mysql/var
      [root@soma var]# tar -cvzpf /home/new_var/mysql.tar.gz *
      [root@soma]# cd /home/new_var
      [root@soma new_var]# ls
      [root@soma new_var]# mysql.tar.gz

   4. 압축풀기

      [root@soma new_var]# tar -xvzpf mysql.tar.gz
  
   5. 그룹 & 소유자 & 퍼미션 바꾸기 - new_var

      [root@soma new_var]# cd /home
      [root@soma home]# ls

      -rw-------    1 root     root         8192 Oct 15 17:16 aquota.user
      drwxr-xr-x    2 root     root        16384 Sep 10 18:15 lost+found
      drwx------    2 mysql    mysql        4096 Sep 12 20:14 mysql
      drwxr-xr-x    5 root     root         4096 Oct 15 17:17 new_var  -> 여기 보세요
      -rw-------    1 root     root        16064 Sep 13 09:42 quota.user
      drwxr-xr-x   10 root     root         4096 Sep 10 11:08 rrdtool
      drwxr-xr-x    6 soma     soma         4096 Oct 10 18:18 soma
      
      [root@soma home]# chown -R mysql.mysql ./new_var

      new_var 디렉토리 및 그 이하의 모든 파일 및 디렉토리의 소유자/그룹을 mysql 로변경

      [root@soma home]# chmod 700 ./new_var

      new_var 디렉토리를 700 으로 변경

   6. mysql 데몬 실행하기

      [root@soma home]# /usr/local/mysql/bin/safe_mysqld --datadir=/home/new_var &

   7. 부팅시 mysql 데몬 자동으로 실행하기

      [root@soma home]# vi /etc/rc.d/rc.local

      /usr/local/mysql/bin/safe_mysqld --datadir=/home/new_var &  -> 추가

   8. 확인하기 

      데이타베이스를 새로 생성하거나 테이블을 만들거나 하면 /home/new_var 디렉토리로 
      쌓이는것을 확인 할수있다.


위의 내용은 어떻게보면 심볼릭 링크를 사용하는것이나 다를봐가 없다고 볼수도있습니다.
어떻게 보면 더 불편할수도 있구요. 왜냐면 mysql 데몬을 실행할때 경로명을 지정하는것을 잊으버리면 문제가 발생할수도 있기 때문이죠.
무슨 문제냐하면 데이타가 쌓이는 위치가 바뀌게 되므로 큰 문제가 아닐수가 없겠죠..

하지만 어디까지나 하나의 방법을 설명하기위한 내용이므로 참고로 알고계시면 문제가 없을것
같습니다.

이상입니다.

관련글 더보기