一、ubuntu20.04安装mysql5.7
# sudo apt update
# sudo apt upgrade
# sudo apt install libaio1 libtinfo5 libmecab2 libjson-perl python2 python2.7
# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
# tar xvf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
# rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
# rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb
# sudo dpkg -i mysql-common_5.7.31-1ubuntu18.04_amd64.deb
# sudo dpkg -i lib*.deb
# sudo dpkg -i mysql-*.deb
二、锁定MySQL5.7版本
1. 使用apt-mark
安装后,运行以下命令保存安装的版本,防止包管理器在未来自动更新它:
sudo apt-mark hold PACKAGENAME
对于 MySQL5.7,操作如下:
sudo apt-mark hold libmysqlclient-dev
sudo apt-mark hold mysql-client
sudo apt-mark hold mysql-common
sudo apt-mark hold mysql-server
使用以下命令检查标记为保留(锁定)的包:
sudo apt-mark showhold
解除锁定包的版本,使用如下命令:
sudo apt-mark unhold PACKAGENAME
注意:apt-mark命令可允许操作多个程序包,如:sudo apt-mark hold PACKAGENAME1 PACKAGENAME2 PACKAGENAME3 PACKAGENAME4
2. 使用dpkg
阻止程序包升级,请使用:
echo "PACKAGE hold" | sudo dpkg --set-selections
你可以使用以下命令查看所有 hold 的软件包:
dpkg --get-selections | grep hold
要删除保留(允许升级包),请使用:
echo "PACKAGE install" | sudo dpkg --set-selections
注意:dpkg命令每次只允许操作一个程序包
三、 Ubuntu20.04卸载Mysql
sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-common
sudo rm -rf /etc/mysql/ /var/lib/mysql
四、清理残留数据
dpkg -l | grep ^rc| awk '{print $2}' | sudo xargs dpkg -P
sudo apt autoremove
sudo apt autoclean