重新设定MySQL 8.X的数据存储目录/MySQL数据搬家

发布于 作者 量尺寸留下评论

先查看下当前MySQL 8.X的数据存储位置:

mysql -uroot -p

select @@datadir;

输出:


+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)

可以看出,当前MySQL数据目录为默认的 /var/lib/mysql/ ,下来停止MySQL服务:

systemctl stop mysql

检查MySQL服务状态是否为 inactive

systemctl status mysql

下来我们使用同步命令来将原数据目录中的所有文件复制到新的目录 /mnt/vdb1/mysql 中:

rsync -av /var/lib/mysql /mnt/vdb1/mysql

以防万一,将原有的数据目录备份到/var/lib/mysql.bak :

mv /var/lib/mysql /var/lib/mysql.bak

然后对MySQL配置文件进行修改,指定新的数据存储目录:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 #datadir= 将前面的注释符#去掉,并修改为新的数据目录:

datadir= /mnt/vdb1/mysql

下来需要配置 AppArmor

nano /etc/apparmor.d/tunables/alias

修改成如下内容:

alias /var/lib/mysql/ -> /mnt/vdb1/mysql/,

重启AppArmor服务

systemctl restart apparmor

最后,我们为了能使MySQL启动脚本通过检测,需要建立个名为 /var/lib/mysql/mysql 的目录,这个目录没有实际作用,仅用来使MySQL的启动脚本能顺利检测运行环境,顺利启动。

mkdir /var/lib/mysql/mysql -p

最后启动MySQL服务

systemctl start mysql

检查MySQL服务支持状态是否为active

systemctl status mysql

为了稳妥起见,最好再登录MySQL使用 select @@datadir; 语句查看当前数据目录是否配置正确。

一切正常后,删除备份

rm -Rf /var/lib/mysql.bak

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注