是否可以在 Ubuntu 19.10 上安装 MySQL Server 5.7?如果可以,如何安装?
答案1
MySQL 服务器 5.7 在 Eoan Ermine (19.10) 的存储库中不可用,但在 Bionic Beaver (18.04) 中可用,可从 Ubuntu 的官方存储库以及 MySQL 的存储库获得。您可以使用 Bionic 的存储库在 Eoan 上安装 MySQL 服务器 5.7。
使用 Ubuntu 18.04 的 MySQL 存储库
首先创建一个具有 sudo 权限的新文本文件:
sudo nano /etc/apt/sources.list.d/mysql.list
添加以下行:
deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-apt-config deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-5.7 deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-tools #deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-tools-preview deb-src http://repo.mysql.com/apt/ubuntu/ bionic mysql-5.7
您可以根据需要的软件包注释/取消注释存储库。使用Ctrl+X后跟保存并退出Y。然后运行
sudo apt update
你会得到一个错误,例如
Err:1 http://repo.mysql.com/apt/ubuntu bionic InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <some key value>
使用添加此密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <key value>
更新并检查当前可用的 MySQL 5.7 版本
sudo apt update apt-cache policy mysql-server
在撰写此答案时,5.7.29-1ubuntu18.04 可用。
安装所需的 MySQL 版本。
sudo apt install mysql-server=5.7.29-1ubuntu18.04
笔记:由于某些原因,在我的安装过程中,APT 在安装 MySQL Server 5.7 时没有安装 mysql-client,MySQL Server 5.7 是 MySQL Community Server 的依赖项,而 MySQL Community Server 又是 MySQL Server 的依赖项,因此出现了依赖性问题。为了解决这个问题,我需要先使用 APT 安装 MySQL 客户端
sudo apt install mysql-client=5.7.29-1ubuntu18.04
要使用 Ubuntu 的存储库进行安装,请添加 Ubuntu 18.04 的官方存储库,更新缓存并安装 MySQL 5.7。运行:
echo "deb http://security.ubuntu.com/ubuntu/ bionic-security restricted main" | sudo tee /etc/apt/sources.list.d/bionic.list sudo apt update apt-cache policy mysql-server sudo apt install mysql-server=5.7.29-0ubuntu0.18.04.1
我建议在安装后删除 Bionic 的存储库,因为拥有其他版本的存储库信息有时会破坏安装。为此,请运行
sudo rm /etc/apt/sources.list.d/bionic.list
答案2
补充 Kulfy 的回答。如果要阻止软件包更新回 MySQL 8+,请创建一个名为mysql
at 的文件/etc/apt/preferences.d/
。
在该文件中放置以下内容
Package: mysql-server
Pin: version 5.7.29-1ubuntu18.04
Pin-Priority: 1001
Package: mysql-client
Pin: version 5.7.29-1ubuntu18.04
Pin-Priority: 1001
Package: mysql-community-server
Pin: version 5.7.29-1ubuntu18.04
Pin-Priority: 1001
Package: mysql-community-client
Pin: version 5.7.29-1ubuntu18.04
Pin-Priority: 1001
这将阻止apt upgrade
将 MySQL 升级回版本 8。
笔记:您使用的版本可能不同,截至 2020 年 2 月 12 日,版本为5.7.29-1ubuntu18.04
。要获取版本,请运行apt list --installed | grep -E 'mysql-(client|server)'
。
答案3
扩展 Kulfy 和 NSwanson7 的答案,安装可以修复为版本 5.7.*。无需指定确切的版本。
- 将 mysql-client 和 mysql-server 的版本固定为 5.7*。为此,创建文件 /etc/apt/preferences.d/mysql,内容如下
Package: mysql-server Pin: version 5.7* Pin-Priority: 1001 Package: mysql-client Pin: version 5.7* Pin-Priority: 1001
- 从 Ubuntu 18.04 添加存储库。为此,创建文件 /etc/apt/sources.list.d/mysql.list,内容如下
deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-apt-config deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-5.7 deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-tools deb-src http://repo.mysql.com/apt/ubuntu/ bionic mysql-5.7
- 更新 repos 并安装
sudo apt update && sudo apt install mysql-client mysql-server
或者使用以下脚本:
echo "deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-apt-config" | sudo tee /etc/apt/sources.list.d/mysql.list
echo "deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-5.7" | sudo tee -a /etc/apt/sources.list.d/mysql.list
echo "deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-tools" | sudo tee -a /etc/apt/sources.list.d/mysql.list
echo "deb-src http://repo.mysql.com/apt/ubuntu/ bionic mysql-5.7" | sudo tee -a /etc/apt/sources.list.d/mysql.list
echo "Package: mysql-server" | sudo tee /etc/apt/preferences.d/mysql
echo "Pin: version 5.7*" | sudo tee -a /etc/apt/preferences.d/mysql
echo "Pin-Priority: 1001" | sudo tee -a /etc/apt/preferences.d/mysql
echo "" | sudo tee -a /etc/apt/preferences.d/mysql
echo "Package: mysql-client" | sudo tee -a /etc/apt/preferences.d/mysql
echo "Pin: version 5.7*" | sudo tee -a /etc/apt/preferences.d/mysql
echo "Pin-Priority: 1001" | sudo tee -a /etc/apt/preferences.d/mysql
sudo apt update
sudo apt -y install mysql-server mysql-client