본문 바로가기

삽질기행/리눅스서

MySQL data 디렉토리 변경.



하드가 만땅 차가고 있어서 추가로 하드를 달았고, DB data 디렉토리만 추가된 하드로 바꾸고 싶었다.
아니.. data 디렉토리를 추가된 하드만큼 확장하고 싶었다.(기존하드+추가된하드)
근데 어찌해야할지 모르겠더군..ㅋ 그래서 추가된 하드로 data 디렉토리를 바꿨다. 같이 쓰는거는..
나중에 해보기로 하고..

MySQL data 디렉토리 변경.

보통
/usr/local/mysql/data/
일반적으로 MySQL 설치하면 저 위치에 data 디렉토리가 생성되고 디비가 쌓여간다.
저 부분에 대한 설정은 my.cnf에 나와 있는데, /etc/my.cnf 에 위치해 있다.(보통은)

vi 같은걸로 my.cnf를 열어보면


#BEGIN CONFIG INFO
#DESCR: 4GB RAM, InnoDB only, ACID, few connections, heavy queries
#TYPE: SYSTEM
#END CONFIG INFO
.......
....

[client]
 #password   = [your_password]
port        = 3306
socket      = /tmp/mysql.sock

# *** Application-specific options follow here ***

#
# The MySQL server
#
[mysqld]

# generic configuration options
port        = 3306
socket      = /tmp/mysql.sock
default-character-set = euckr
datadir=/usr/local/mysql/data
.....
..


저런식으로 설정 부분이 쭉~ 나온다.
여기서 확인해 둘것은 InnoDB 사용한다는것, datadir 위치 이다.
datadir은 새로 추가된 파티션을 마운트 하던지 해서 경로 잡아주면 된다.
또, 변경해줘야 하는 부분은
InnoDB사용하는 부분의 경로를 변경해줘야한다.
InnoDB로 검색해보면
 # Location of the InnoDB log files. Default is the MySQL datadir. You
# may wish to point it to a dedicated hard drive or a RAID1 volume for
# improved performance
innodb_log_group_home_dir = /usr/local/mysql/data

innodb관련한 부분이 나오는데 여기도 경로 설정을 다시 해줘야 한다.
innodb가 아니더라도 해당 db의 경로 부분을 확인해줘야한다.


새로운 DATA 디렉토리를 만들어 줬다면 디렉토리에 대한 퍼미션 설정도 변경해줘야한다.
data 디렉토리에 대한 권한은 mysql.mysql 이다.