由于公司测试环境服务器根目录下空间不足,而mysql,docker等服务的数据目录都存在跟目录下,所以考虑数据迁移,先迁移mysql数据目录到home下,迁移过程中出现的问题,在此重新总结下。
mysql默认的数据目录在/var/lib/mysql/下,配置文件在/etc/my.cnf中,日志目录在/var/log/mysqld.log中
- 停车mysql服务
systemctl stop mysqld
- .在home下新建备份目录
mkdir -p /home/mysql/data
- 将mysql数据目录复制到新目录下
cp -rf * /var/lib/mysql/ /home/mysql/data
分别在迁移前和迁移后的目录中执行 du -sh 查看迁移的数据大小是否一致
- 将当前前目录下的所有文件与子目录的拥有者皆设为mysql,群体的使用者 mysql
chown -R mysql:mysql /home/mysql/data
- 修改配置文件相关参数
修改配置文件中datadir目录
- 重启mysql服务
systemctl stop mysqld
总结:
由于cp命令不会复制文件中的所有者,导致启动一直抱错,所以迁移完数据后一定要把新的目录设置给mysql用户才能重启成功,当时因为这个问题,导致耽误了很长时间。