Mysql

如何將 Debian 10 上的 mysql 從 8.029 降級到 8.02x

  • May 6, 2022

我在我的測試伺服器(Debian 10)上安裝了 MySQL。我最近將它更新到最新版本(8.0.29),但它存在一些問題,所以我想回到舊版本(8.0.28)。但我無法為我的生活弄清楚如何做到這一點。

我已刪除現有數據庫,並嘗試使用以下方法重新安裝它:

apt-get install mysql-server=8.0.28-1debian10

但這沒有用,並建議我執行:

apt --fix-broken install

當然,它再次將其升級到最新版本。

我已經嘗試了很多變體,但都導致mysql-server can't be found或類似的錯誤。

我一直在網上搜尋,似乎有很多人問類似的問題,但沒有真正的解決方案。甚至官方的 MySQL 文件也掩蓋了這一點。

可以做到嗎?如果是這樣,怎麼辦?它只是一個測試數據庫,所以我對廢棄它並重新開始沒有任何問題。

如果您有數據,請先進行備份。

要完全解除安裝,請MySQL按照以下步驟操作:

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade
sudo rm -rf /etc/mysql
sudo rm -rf /var/lib/mysql*

要安裝MySQL 8.0.22 添加 MySQL 軟體儲存庫

sudo apt update
sudo apt install gnupg

mysql-server_8.0.22-1debian10_amd64.deb-bundle.tarMySQL 存檔或使用 wget下載:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar

下載完成後安裝包:

sudo dpkg -i mysql-apt-config*

在安裝過程中,您將看到一個配置螢幕,您可以在其中指定您喜歡的 MySQL 版本,以及為其他 MySQL 相關工具安裝儲存庫的選項。選擇您需要的那個。

刷新您的 apt 包記憶體以使新的軟體包可用:

sudo apt update

添加儲存庫並更新包記憶體後,現在您可以使用 apt 安裝最新的 MySQL 伺服器包:

sudo apt install mysql-server

MySQL 現在應該已安裝並執行。使用 systemctl 檢查:

sudo systemctl status mysql

不要忘記使用來保護 MySQL

mysql_secure_installation

參考文獻

https://www.digitalocean.com/community/questions/how-can-i-properly-downgrade-from-mysql-8-to-5-7-on-ubuntu-20-04

https://www.digitalocean.com/community/tutorials/how-to-install-the-latest-mysql-on-debian-10

所以我最終到達了那裡。這可能並不完全正確,並且可能有更好的方法來做到這一點,但它對我有用:

  1. 如果需要,首先進行 MySQLDump 備份。
  2. 刪除舊的 MySQL 版本

systemctl stop mysql

apt-get remove --purge 'mysql-.*'

apt-get autoremove

apt-get autoclean

apt-get dist-upgrade

rm -rf /etc/mysql

rm -rf /var/lib/mysql*

  1. 下載新版本包

cd /root

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.28-1debian10_amd64.deb-bundle.tar

  1. 提取文件並按此順序安裝

mkdir 828

tar -xvf mysql-server_8.0.28-1debian10_amd64.deb-bundle.tar -C /root/828 cd /root/828 dpkg -i libmysqlclient21_8.0.28-1debian10_amd64.deb

dpkg -i mysql-common_8.0.28-1debian10_amd64.deb

dpkg -i mysql-community-client-plugins_8.0.28-1debian10_amd64.deb

dpkg -i mysql-community-client-core_8.0.28-1debian10_amd64.deb

dpkg -i mysql-community-client_8.0.28-1debian10_amd64.deb

dpkg -i mysql-client_8.0.28-1debian10_amd64.deb

dpkg -i mysql-community-server-core_8.0.28-1debian10_amd64.deb

apt --fix-broken install

dpkg -i mysql-community-server-core_8.0.28-1debian10_amd64.deb

dpkg -i mysql-community-server_8.0.28-1debian10_amd64.deb

dpkg -i mysql-server_8.0.28-1debian10_amd64.deb

它現在應該使用正確的版本:

systemctl status mysql

mysqld- V /usr/sbin/mysqld Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)

最後,保護數據庫 mysql_secure_installation

引用自:https://dba.stackexchange.com/questions/311721