符号链接正在使用两个位置吗?

符号链接正在使用两个位置吗?

我研究过,没有找到任何答案,所以我决定在这里问。/dev/sda2我的 WHM/Cpanel 网络服务器的磁盘已满 100%。/var文件夹位于/dev/sda2磁盘上,我发现磁盘已满 100% 的原因是/var/lib/mysql文件夹。

为了修复它,我需要将/var/lib/mysql文件夹移动/dev/sda2/home磁盘空间充足的地方。

然后我使用命令行:

service mysql stop
cp -r -p /var/lib/mysql/ /home/databasesmysql/
mv /var/lib/mysql /var/lib/mysql.backup/
ln -s /home/databasesmysql/ /var/lib/mysql
service mysql start

好的,现在检查它是否在新位置运行,我刚刚将其重命名/var/lib/mysql/var/lib/mysql.backup并且 MySQL 停止工作。

另外,当我重命名/home/databasesmysql文件夹时,MySQL 也停止工作。

我不知道发生了什么,符号链接使用了两个位置?

答案1

您使用ln -s参数的方式错误。cp使用时请三思ln:源在前,目标在后。

您希望有一个/var/lib/mysql指向实际目录的链接/home/databasesmysql。如果您要复制,请执行以下操作:

cp -r /home/databasesmysql /var/lib/mysql

所以ln -s你也这么做:

ln -s /home/databasesmysql /var/lib/mysql

答案2

/home/databasesmysql运行命令之前该目录是否存在?

如果是,则目录
/var/lib/mysql未复制 /home/databasesmysql
它是复制进入 /home/databasesmysql
因此副本被命名为/home/databasesmysql/mysql,而不是/home/databasesmysql

当然,这意味着链接/var/lib/mysql没有指向正确的目录。

相关内容