默认在【/var/lib/mysql/】
# 查看
[root@centosServer ~]# mysql -uroot -p
mysql> show global variables like '%datadir%';
# 关闭
[root@centosServer ~]# systemctl stop mysqld.service
# 查看是否关闭成功
[root@centosServer ~]# systemctl status mysqld.service
3.1首先创建要迁移的目标文件夹
# 创建仓库文件夹
[root@centosServer ~]# mkdir -p /home/mysql/mysql_data
# 授权,将目录的user和group变更为mysql
[root@centosServer ~]# chown -R mysql:mysql /home/mysql/mysql_data
3.2然后执行迁移
注意: -a 参数在复制的时候可以把权限复制到目标文件夹
如果数据库比较大,可能会超时,具体设置ssh不超时的办法,请百度!
# 迁移目录
[root@centosServer ~]# mv /var/lib/mysql /home/mysql/mysql_data
# 或者
[root@centosServer ~]# cp -a /var/lib/mysql /home/mysql/mysql_data
编辑vi /etc/my.cnf
文件,修改datadir和socket路径,然后ESC退出:wq
保存
# 编辑my.cnf文件
[root@centosServer ~]# vi /etc/my.cnf
[mysqld]
datadir=/home/mysql/mysql_data/mysql
socket=/home/mysql/mysql_data/mysql/mysql.sock
[client]
default-character-set = utf8
socket=/home/mysql/mysql_data/mysql/mysql.sock
# 查看mysqld_db_t默认配置
semanage fcontext -l|grep mysqld_db_t
# 默认值:semanage fcontext -a -t mysqld_db_t "/path/to/my/custom/datadir(/.*)?"
semanage fcontext -a -t mysqld_db_t "/home/mysql/mysql_data/mysql(/.*)?"
# 默认值:restorecon -Rv /path/to/my/custom/datadir
restorecon -Rv /home/mysql/mysql_data/mysql
# 查看mysqld_db_t修改后配置
semanage fcontext -l|grep mysqld_db_t
[root@centosServer ~]# systemctl start mysqld.service
# 或者
[root@centosServer ~]# systemctl restart mysqld.service
[root@centosServer ~]# mysql -uroot -p
mysql> show global variables like '%datadir%';
Mysql官网:https://dev.mysql.com/doc/refman/5.7/en/selinux-file-context.html