보통 MySQL이나 MariaDB를 설치하면 data 파일을 /var/lib/mysql 폴더 아래에 둔다. 그런데 폴더를 옮길 때가 가끔 있다. 이 글은 그런 경우를 대비해서.
- CentOS 7 기준
0. 작업 전 DB 및 폴더 백업은 필수
1. 폴더 생성
이동할 폴더를 아래와 같이 생성한다.
mkdir /home/mysql/data |
해당 폴더에 권한 설정을 한다.
chown -R mysql:mysql /home/mysql/data |
2. mysql shutdown
systemctl stop mysqld.service |
3. 복사하기
rsync -av /var/lib/mysql /home/mysql/data |
4. 설정 파일 수정 - /etc/my.cnf
[mysqld] datadir=/home/mysql/data/mysql socket=/home/mysql/data/mysql/mysql.sock
[client] socket=/home/mysql/data/mysql/mysql.sock |
* 설정 파일을 수정하지 않고 ln 로 symbolic link를 달아 줄려고 했는데, 잘 되질 않았다. 시스템에서 쓰는 거라 그런가.
/var/lib 이외 폴더에서 mysql data 를 쓸 경우에는 하나를 더 수정해 주어야 한다.
파일 위치 : /usr/lib/systemd/system/mariadb.service
ProtectHome=true -> ProtectHome=false |
6. mysql start
systemctl daemon-reload systemctl start mysqld.service |
php.ini 수정