lk2rovrx.png
MySQL 数据库的数据目录是存储所有数据库和表数据的位置。有时候,由于磁盘空间的限制或其他原因,你可能需要将数据目录迁移到其他位置。以下是在 MySQL 8 中迁移数据目录的步骤。

教程

1、停止 MySQL 服务

首先,你需要停止正在运行的 MySQL 服务,以防止在迁移过程中有新的数据写入。你可以使用以下命令:

在 Ubuntu/Debian 系统中:
sudo systemctl stop mysql

在 CentOS/RHEL 系统中:
sudo systemctl stop mysqld

2、复制数据目录

默认情况下MySQL的数据目录位于 /var/lib/mysql/。你需要将整个目录复制到新的位置。例如,如果新的位置是 /newpath/mysql/ 你可以使用以下命令,这个命令会保留原有的文件和目录权限:
sudo cp -R -p /var/lib/mysql /newpath

3、更新 MySQL 配置

接下来,你需要更新MySQL的配置文件,将数据目录的位置改为新的位置。配置文件通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnf

找到 [mysqld] 部分,修改datadir行为新的路径:

[mysqld]
datadir=/newpath/mysql

4、修改AppArmor配置

如果你的系统是Ubuntu或Debian(centos不用) ,还需要更新 AppArmor 的配置。编辑 /etc/apparmor.d/usr.sbin.mysqld 文件,添加新的数据目录的权限:

/newpath/mysql/ r,
/newpath/mysql/** rwk,

然后重载 AppArmor 配置:

sudo systemctl restart apparmor

5、修改SELinux配置CentOS/RHEL

之前有文章讲到过,推荐去看看把selinux关掉
https://www.ycyaw.com/Linux/781.html

6、启动 MySQL 服务

最后,你可以启动 MySQL 服务:

在 Ubuntu/Debian 系统中:
sudo systemctl start mysql

在 CentOS/RHEL 系统中:
sudo systemctl start mysqld

7、检查 MySQL 服务

你可以通过以下命令检查 MySQL 服务是否正常运行,并查看数据目录是否修改正确:

sudo systemctl status mysql
mysql -u root -p -e "SHOW VARIABLES WHERE Variable_name = 'datadir';"
分类: 技术分享 标签: MySQL迁移

评论

暂无评论数据

暂无评论数据

目录