有没有办法回滚到 mysql 5.5,我目前通过 pkg 安装了 5.6.47
我尝试卸载当前版本,但没有成功,你们知道如何在不重新配置 freebsd 机器的情况下基本上转到任何版本的 mysql 5.5 吗?
root@ServerfilesPoject16:~ # pkg delete mysql55-client-5.6.47
No packages matched for pattern 'mysql55-client-5.6.47'
答案1
警告!这里有龙!
我不清楚“重新配置”机器是什么意思。您不需要对基本 FreeBSD 安装进行任何更改。但是,您确实需要对计算机进行更改,因为这些包存在冲突。
如果你看一下弗雷什波特你可以看到冲突:
CONFLICTS_INSTALL:
mysql5[0-46-9]-client-*
mariadb*-client-*
percona*-client-*
在正常操作中,您只需要求安装所需的软件包,它就会警告您这些冲突并提出删除它们。
pkg install mysql55-client
然后这应该会提供删除mysql56-client
。
这导致我们认为您对版本号感到困惑。
版本 5.5 和 5.6 是不同的包:
- mysql55-客户端当前版本为 5.5.62_3
- mysql56-客户端目前版本为 5.6.51
你说你有mysql55-client-5.6.47
。我认为你更有可能有mysql56-client-5.6.47
。
您可以使用以下命令查看系统上实际安装的内容:
pkg info
因此,从应用程序的角度来看,安装不同的版本并处理冲突是非常浪费的。如果您随着时间的推移安装了许多不再需要的依赖项的应用程序,您可以使用以下命令清除它们:
pkg autoremove
请务必阅读以下位置的手册页:包装(8)。有很多关于如何管理包的教程。
您使用 Mysql 客户端的情况很简单,并且很容易来回交换,因为它是一个简单的客户端。
但如果你还有 Mysql 服务器,那么事情可能会变得棘手。理论上,服务器应用程序也很容易交换。但这是一个数据库服务器,那些东西有……数据。
因此您可以轻松回滚应用程序。但数据完全取决于应用程序。当切换数据库中的版本号时,它们通常会更新磁盘上的数据结构。如果数据已更新,旧版本可能无法正确处理。典型的回滚是恢复备份。但这是由应用程序决定的。
有许多不同的方法可以进行此类备份。特别是对于数据库。
然而,FreeBSD 确实有一个重要的工具可以帮助您。如果您正在使用ZFS文件系统那么你可以做快照。如果您在升级之前创建了快照,则可以通过恢复到该快照来进行即时回滚。然后您可以尝试多次升级(和回滚)。但是,它确实要求您在升级之前进行快照。
快照过程非常快。但为了安全起见,您应该确保 mysql 已准备好使用FLUSH TABLES WITH READ LOCK
.做快照。然后UNLOCK TABLES
。看这个答案和这个解释
mysql << EOF
FLUSH TABLES WITH READ LOCK;
system zfs snapshot data/db@snapname
UNLOCK TABLES;
EOF