mysql如何简单迁移数据目录(需要停服务)

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://vip.lzzcc.cn/Linux/781.html

6、启动 MySQL 服务

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

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

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

7、检查 MySQL 服务

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

sudo systemctl status mysqlmysql -u root -p -e "SHOW VARIABLES WHERE Variable_name = \'datadir\';"
有问题及时联系站长,QQ:1240555208
更多优质资源在QQ群里,可以进群领取:467392290~
© 版权声明
THE END
点赞9 分享
及时反馈~ 抢沙发

请登录后发表评论

    暂无评论内容