在Linux环境下,MySQL的安装路径或数据目录常常被配置文件写死。通过为MySQL相关目录或二进制文件建立软链接(symbolic link),我们可以在不改动配置的前提下完成版本切换或数据迁移。下面先看一个示例示意图。

什么是软链接
软链接类似于Windows的快捷方式,它是一个特殊的文件,指向另一个文件或目录。使用ln -s命令即可创建。对MySQL而言,常见的软链接对象包括二进制目录/usr/local/mysql和数据目录/var/lib/mysql。
为MySQL程序目录建软链接
假设服务器上安装了两个版本:/opt/mysql-5.7和/opt/mysql-8.0,我们希望通过统一路径/usr/local/mysql来访问当前版本。
# 移除旧链接(若存在) sudo rm -f /usr/local/mysql # 创建指向8.0版本的软链接 sudo ln -s /opt/mysql-8.0 /usr/local/mysql # 查看链接情况 ls -l /usr/local/mysql
切换版本时,只需删除原链接并重新指向新目录即可,配置文件中继续使用/usr/local/mysql/bin路径。
为MySQL数据目录建软链接
当系统盘空间不足,可将数据迁移到/data/mysql并通过软链接保持原路径不变。
# 停止MySQL服务 sudo systemctl stop mysqld # 移动原有数据 sudo mv /var/lib/mysql /data/mysql # 创建软链接 sudo ln -s /data/mysql /var/lib/mysql # 修复权限 sudo chown -h mysql:mysql /var/lib/mysql # 启动服务 sudo systemctl start mysqld
注意事项
- 软链接权限使用
-h参数才能正确修改链接本身属主。 - 若系统启用SELinux或AppArmor,需添加对应策略允许访问链接目标。
- 不要对运行中文件的inode直接替换,应先停服务再操作。
用脚本简化切换
可写一个简单的Shell函数管理版本链接:
mysql_switch() {
local ver=$1
sudo systemctl stop mysqld
sudo rm -f /usr/local/mysql
sudo ln -s /opt/mysql-$ver /usr/local/mysql
sudo systemctl start mysqld
}
# 使用:mysql_switch 5.7
通过上述方式,给MySQL建软链接就成为一套可复用、低风险的运维手段。
mysql软链接symbolic_link修改时间:2026-07-30 14:21:16