回滾到 mysql 5.5 FreeBSD 11.3-RELEASE
有沒有辦法回滾到 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'
**警告!**這裡是龍!
我不清楚“重新配置”機器是什麼意思。您無需對基本 FreeBSD 安裝進行任何更改。但是,您確實需要對機器進行更改,因為這些包是衝突的。
如果您查看Freshports,您會看到衝突:
CONFLICTS_INSTALL: mysql5[0-46-9]-client-* mariadb*-client-* percona*-client-*
在正常操作中,您只會要求安裝所需的軟體包,它會警告您這些衝突並提供刪除它們。
pkg install mysql55-client
這應該然後提供刪除
mysql56-client
。這導致我們對您的版本號感到困惑。
版本 5.5 和 5.6 是不同的軟體包:
- mysql55-client,目前版本為 5.5.62_3
- mysql56-client,目前版本為 5.6.51
你說你有
mysql55-client-5.6.47
。我認為您更有可能擁有mysql56-client-5.6.47
.您可以通過以下方式查看系統上實際安裝的內容:
pkg info
因此,從應用程序的角度來看,安裝不同的版本並處理衝突是非常浪費的。如果您隨著時間的推移安裝了許多不再需要的依賴項的應用程序,您可以使用以下命令清除它們:
pkg autoremove
始終閱讀pkg(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