Freebsd

回滾到 mysql 5.5 FreeBSD 11.3-RELEASE

  • March 8, 2021

有沒有辦法回滾到 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.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

引用自:https://unix.stackexchange.com/questions/638025