如何将文件从完整分区移动到空间更大的分区?
背景故事:
Centos7在安装时对1TB硬盘进行了分区。我没有意识到mysql安装和运行的分区只有50G。它达到了最大容量,现在 mysql 服务将无法启动,所以我不能简单地删除或截断表。运行后,我将在线搜索如何将 mysql 表保留在大分区上。我实际上不知道为什么 linux centos 需要这么多小分区或者它们的用途。我的 Linux 机器上没有互联网浏览器,所以我无法复制并粘贴df -h
.
挂载的分区/
只有50G,而挂载的分区/home
还有800G空闲。
感谢您的帮助。
答案1
您应该将 的内容复制/var/lib/mysql
到更大的分区上,从空间有限的分区中删除旧副本,并创建到新位置的软链接,以便/var/lib/mysql
系统能够找到并使用新位置。
根据要求,这里是实际命令,但一如既往,请在运行rm
命令之前格外小心(即,检查以确保您的文件已正确复制 - 例如,du -shx .
在两个地方使用以检查总大小是否约为相同的):
mkdir /home/var-lib-mysql
cp -ax /var/lib/mysql/. /home/var-lib-mysql/
rm -rf --one-file-system /var/lib/mysql
ln -sf -T /home/var-lib-mysql/ /var/lib/mysql
当然,请记住,这是一种黑客行为,您应该避免创建字面上称为“var-lib-mysql”的用户帐户。
答案2
- 创建“新分区”。
- 将“新分区”安装到“备份”文件夹。
- 将“/var/lib/mysql”的所有内容和权限复制到文件夹“backup”中。
- 卸载文件夹备份。
- 将“ew 分区”安装到“/var/lib/mysql”。