이 문서는 CentOS 7에서 Mysql data directory 변경에 대한 가이드를 제공한다.
OS : CentOS 7.3.1611
DB : Mysql 5.6.35
mysql 접속 하여 아래와 같은 명령어로 datadir 경로를 확인 하고 서비스를 중단 한다.
mysql> select @@datadir; +-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set (0.00 sec) \q systemctl stop mysql |
아래와 같은 명령어로 새로운 Mysql datadir 생성 후 Mysql datadir 경로 복사 한다. 권한 또한 부여 한다.
mkdir /data/ rsync -av /var/lib/mysql /data/ chown -R mysql:mysql /data/mysql |
/etc/my.cnf을 아래와 같이 수정 한다.
vi /etc/my.cnf [mysqld] datadir=/data/mysql socket=/data/mysql/mysql.sock [client] socket=/data/mysql/mysql.sock #symbolic-links=0 #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES |
아래와 같은 명령어로 SELinux 보안 context에 적용을 시키고 서비스를 시작한다.
semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?" restorecon -R /data/mysql systemctl start mysql |
mysql접속 하여 datadir 경로가 바뀌었음을 확인 할 수 있다.
mysql> select @@datadir; +--------------+ | @@datadir | +--------------+ | /data/mysql/ | +--------------+ 1 row in set (0.00 sec) |
database가 생성 될 때마다 /data/mysql/ 아래로 database가 생성이 된다.