我在我的测试服务器(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
按照以下步骤操作:要安装
MySQL 8.0.22
添加 MySQL 软件存储库mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar
从MySQL 存档或使用 wget下载:下载完成后安装包:
在安装过程中,您将看到一个配置屏幕,您可以在其中指定您喜欢的 MySQL 版本,以及为其他 MySQL 相关工具安装存储库的选项。选择您需要的那个。
刷新您的 apt 包缓存以使新的软件包可用:
添加存储库并更新包缓存后,现在您可以使用 apt 安装最新的 MySQL 服务器包:
MySQL 现在应该已安装并运行。使用 systemctl 检查:
不要忘记使用来保护 MySQL
所以我最终到达了那里。这可能并不完全正确,并且可能有更好的方法来做到这一点,但它对我有用:
如果需要,首先进行 MySQLDump 备份。
删除旧的 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*
cd /root
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.28-1debian10_amd64.deb-bundle.tar
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