카테고리 없음

Mysql 용량 부족으로 다른 파티션으로 저장위치 바꾸는 방법

Jack Moon 2020. 1. 28. 09:29

상황: Mysql을 설치하면 기본 저장위치는 /var/lib/mysql 이다. 처음 파티션시 /var 의 크기가 작아 저장위치를 /home/mysql 로 옮기려 한다.


사전작업: 프로세스가 더이상 실행되지 않는지 확인 후 crontab 백업 후 삭제. 작업 후 다시 복구

작업 중 공지하여 사용자가 접근하지 못하게 함.


1. Mysql 중지

/etc/init.d/mysqld stop


2. DB Data를 /home 으로 복사 

cp -r /var/lib/mysq /home/


3. 이동한 DB Data 폴더 권한 변경

chown -R mysql:mysql /home/mysql


4. /etc/my.cnf 파일을 열어 datadir을 수정

datadir=/home/mysql

# log=/home/mysql/query_log.log

log-error=/home/mysql/prmonitor.err

socket=/home/mysql/mysql.sock

log-slow-queries=/home/mysql/mysql-slow.log


5. mysql을 시작

/etc/init.d/mysqld start


6. 정상적으로 작동되면 기존 데이터는 삭제

rm -rf /var/lib/mysql



점검

1. 터미널로 접속해 본다

[root@ws mysql]# mysql -uroot -p

Enter password: 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'


이런 에러가 뜬다면 vi /etc/my.cnf


[mysql]

socket=/home/mysql/mysql.sock


2. 웹으로 접속해 본다.

mysql_connect 에러가 나면서 socket을 이전것을 찾는다면  vi /etc/php.ini


mysql.default_socket = /home/mysql/mysql.sock


3. PDO 로 접근시 socket 에러 발생


localhost 가 아닌 127.0.0.1 로 호스트명 변경