1、停止MySQL服务

systemctl stop mysqld

 

2、复制现有的数据库目录到新的位置

默认情况下,MySQL的数据库目录位于/var/lib/mysql。假设您想将数据库目录更改为/home/mysql,您可以使用以下命令来复制数据库目录


cp -R /var/lib/mysql /home/mysql

 

3、修改MYSQL配置文件 /etc/my.cnf

#更换datadir目录

#datadir=/var/lib/mysql

datadir=/home/mysql/mysql

socket=/var/lib/mysql/mysql.sock


log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

4、更新数据库目录的权限。使用以下命令更新新的数据库目录的权限

chown -R mysql:mysql /home/mysql/mysql/

1

5、启动MySQL服务。使用以下命令启动MySQL服务:

systemctl start mysqld

1

SELinux错误

如果出现这样的错误


SELinux is preventing /usr/sbin/mysqld from write access on the directory mysql

1

检查对比一下原目录和新目录的selinux权限


ls -Zl /var/lib/mysql


-rw-r-----. 1 system_u:object_r:mysqld_db_t:s0 mysql mysql 56 Aug 10 2022 auto.cnf


ls -Zl /home/mysql/mysql


-rw-r-----. 1 unconfined_u:object_r:home_root_t:s0 root root 56 Sep 1 15:54 auto.cnf


用下面的命令将原目录的selinux权限赋给新的目录


chcon -R --reference=/var/lib/mysql /home/mysql/mysql