Mysql 용량 부족으로 다른 파티션으로 저장위치 바꾸는 방법
상황: 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 로 호스트명 변경