本节提供有关使用 MySQL APT 软件仓库安装 MySQL 的指南。
以下说明假设您的系统上尚未安装任何版本的 MySQL(无论是 Oracle 发行的还是其他方发行的);如果情况并非如此,请按照使用 MySQL APT 软件仓库替换 MySQL 的原生发行版或替换通过直接下载 deb 软件包安装的 MySQL 服务器中给出的说明进行操作。
添加 MySQL Apt 软件仓库。 首先,将 MySQL APT 软件仓库添加到您系统的软件仓库列表中。请按照以下步骤操作
转到 MySQL APT 软件仓库的下载页面,网址为 https://dev.mysqlserver.cn/downloads/repo/apt/。
选择并下载适用于您的 Linux 发行版的发布包。
尽管每次更新都不需要这样做,但它会更新 MySQL 软件仓库信息以包含当前信息,其中包括添加新的 LTS 系列。
使用以下命令安装下载的发布包,将
version-specific-package-name
替换为下载的软件包的名称(如果您没有在软件包所在的文件夹中运行该命令,则在其前面加上其路径)$> sudo dpkg -i /PATH/version-specific-package-name.deb
例如,对于软件包的
w.x.y-z
版本,该命令为$> sudo dpkg -i mysql-apt-config_w.x.y-z_all.deb
请注意,同一个软件包适用于所有受支持的 Debian 和 Ubuntu 平台。
在安装软件包期间,系统会要求您选择要安装的 MySQL 服务器和其他组件(例如,MySQL Workbench)的版本。如果您不确定选择哪个版本,请不要更改为您选择的默认选项。如果您不想安装特定组件,也可以选择 无。完成所有组件的选择后,选择 确定 以完成发布包的配置和安装。
注意创新跟踪从 MySQL 8.1 开始,组件名称中包含“-innovation-”。
您可以随时更改您对版本的選擇;有关说明,请参阅选择主要发行版本。
使用以下命令更新来自 MySQL APT 软件仓库的软件包信息(此步骤是强制性的)
$> sudo apt-get update
您也可以手动添加和配置 MySQL APT 软件仓库,而不是使用发布包;有关详细信息,请参阅附录 A:手动添加和配置 MySQL APT 软件仓库。
在您的系统上启用 MySQL APT 软件仓库后,您将无法再从您平台的原生软件仓库安装任何 MySQL 软件包,除非禁用 MySQL APT 软件仓库。
在您的系统上启用 MySQL APT 软件仓库后,apt-get upgrade 命令执行的任何系统范围升级都将自动升级您系统上的 MySQL 软件包,并且还会替换您从 Linux 发行版的软件仓库安装的任何原生 MySQL 软件包,前提是 APT 从 MySQL APT 软件仓库中找到了它们的替代品。
默认情况下,您的 MySQL 服务器和其他所需组件的所有安装和升级都来自您在安装配置包期间选择的主要版本的发布系列(请参阅添加 MySQL Apt 软件仓库)。但是,您可以随时通过重新配置已安装的配置包切换到另一个受支持的主要发行系列。使用以下命令
$> sudo dpkg-reconfigure mysql-apt-config
然后,一个对话框会要求您选择所需的主要发行版本。做出选择并选择 确定。返回命令提示符后,使用此命令更新来自 MySQL APT 软件仓库的软件包信息
$> sudo apt-get update
然后,下次使用 apt-get install 命令时,将安装所选系列中的最新版本。
您可以使用相同的方法更改要使用 MySQL APT 软件仓库安装的任何其他 MySQL 组件的版本。
通过以下命令安装 MySQL
$> sudo apt-get install mysql-server
这将安装 MySQL 服务器的软件包,以及客户端和数据库公共文件的软件包。
在安装过程中,系统会要求您为 MySQL 安装的 root 用户提供密码。
请务必记住您设置的 root 密码。想要稍后设置密码的用户可以在对话框中将 密码 字段留空,然后按 确定;在这种情况下,将通过第 8.4.1.10 节“套接字对等凭据可插拔身份验证”对使用 Unix 套接字文件的连接进行 root 访问服务器的身份验证。您可以稍后使用 mysql_secure_installation 程序设置 root 密码。
MySQL 服务器在安装后会自动启动。您可以使用以下命令检查 MySQL 服务器的状态
$> systemctl status mysql
如果操作系统启用了 systemd,则应使用标准的 systemctl(或者使用参数反转的 service)命令(如 stop、start、status 和 restart)来管理 MySQL 服务器服务。默认情况下,mysql
服务处于启用状态,并在系统重启时启动。有关其他信息,请参见 第 2.5.9 节“使用 systemd 管理 MySQL 服务器”。
一些依赖于原生 MySQL 软件包的第三方原生存储库软件包可能无法与 MySQL APT 存储库软件包一起使用,因此不应将它们一起使用;这些软件包包括 akonadi-backend-mysql、handlersocket-mysql-5.5 和 zoneminder。
您可以使用 APT 从 MySQL APT 存储库安装 MySQL 的各个组件。假设您的系统存储库列表中已有 MySQL APT 存储库(有关说明,请参见 添加 MySQL Apt 存储库),首先,使用以下命令从 MySQL APT 存储库获取最新的软件包信息:
$> sudo apt-get update
使用以下命令安装您选择的任何软件包,将 package-name
替换为要安装的软件包的名称:
$> sudo apt-get install package-name
例如,要安装 MySQL Workbench:
$> sudo apt-get install mysql-workbench-community
要安装共享客户端库:
$> sudo apt-get install libmysqlclient21
此功能仅在 64 位系统上受支持。
您可以下载 MySQL 的源代码,并使用 MySQL APT 存储库构建它:
将 MySQL APT 存储库添加到您的系统存储库列表中,并选择您想要的主版本系列(有关说明,请参见 添加 MySQL Apt 存储库)。
使用以下命令更新来自 MySQL APT 软件仓库的软件包信息(此步骤是强制性的)
$> sudo apt-get update
安装构建过程依赖的软件包:
$> sudo apt-get build-dep mysql-server
下载 MySQL 主要组件的源代码,然后构建它们(在您希望放置下载文件和构建的文件夹中运行此命令):
$> apt-get source -b mysql-server
将创建用于安装各种 MySQL 组件的
deb
软件包。选择您需要的 MySQL 组件的
deb
软件包,并使用以下命令安装它们:$> sudo dpkg -i package-name.deb
请注意,MySQL 软件包之间存在依赖关系。对于 MySQL 服务器的基本安装,请按以下步骤安装数据库通用文件软件包、客户端软件包、客户端元软件包、服务器软件包和服务器元软件包(按此顺序):
使用以下命令预配置 MySQL 服务器软件包:
$> sudo dpkg-preconfigure mysql-community-server_version-and-platform-specific-part.deb
系统将要求您为 MySQL 安装的 root 用户提供密码;请参见上面 使用 APT 安装 MySQL 中给出的有关 root 密码的重要信息。您可能还会被问及有关安装的其他问题。
使用单个命令安装所需的软件包:
$> sudo dpkg -i mysql-{common,community-client,client,community-server,server}_*.deb
如果 dpkg 警告您存在未满足的依赖关系,则可以使用 apt-get 解决它们:
sudo apt-get -f install
以下是文件在系统上的安装位置:
所有配置文件(如
my.cnf
)都在/etc/mysql
下。所有二进制文件、库、头文件等都在
/usr/bin
和/usr/sbin
下。数据目录位于
/var/lib/mysql
下。
另请参见 启动和停止 MySQL 服务器 中给出的信息。
在对 MySQL 执行任何升级之前,请仔细按照 第 3 章“升级 MySQL” 中的说明进行操作。在该章节讨论的其他说明中,在升级之前备份数据库尤为重要。
以下说明假设 MySQL 是使用 MySQL APT 存储库安装在您的系统上的;如果不是这种情况,请按照 使用 MySQL APT 存储库替换 MySQL 的原生发行版 或 替换通过直接下载 deb 软件包安装的 MySQL 服务器 中给出的说明进行操作。另请注意,您无法使用 MySQL APT 存储库来升级您从非原生软件存储库(例如,MariaDB 或 Percona)安装的 MySQL 发行版。
按照以下步骤,使用 MySQL APT 存储库对 MySQL 安装执行就地升级(即替换旧版本,然后使用旧数据文件运行新版本):
确保您的系统存储库列表中已有 MySQL APT 存储库(有关说明,请参见 添加 MySQL Apt 存储库)。
通过运行以下命令,确保您拥有 MySQL APT 存储库上最新的软件包信息:
$> sudo apt-get update
请注意,默认情况下,MySQL APT 存储库会将 MySQL 更新为您在 将 MySQL APT 存储库添加到您的系统 时选择的版本系列。如果您想升级到另一个版本系列,请按照 选择主版本 中给出的步骤进行选择。
作为一般规则,要从一个版本系列升级到另一个版本系列,请转到下一个版本系列,而不是跳过一个版本系列。例如,如果您当前运行的是 MySQL 5.7,并且希望升级到更新的版本系列,请先升级到 MySQL 8.0,然后再升级到 8.4。
重要MySQL APT 存储库不支持 MySQL 的就地降级。请按照 第 4 章“降级 MySQL” 中的说明进行操作。
$> sudo apt-get install mysql-server
如果有更新的版本,则会升级 MySQL 服务器、客户端和数据库通用文件。要升级任何其他 MySQL 软件包,请使用相同的 apt-get install 命令,并提供您要升级的软件包的名称:
$> sudo apt-get install package-name
要查看您从 MySQL APT 存储库安装的软件包的名称,请使用以下命令:
$> dpkg -l | grep mysql | grep ii
注意如果您使用 apt-get upgrade 执行系统范围的升级,则只有 MySQL 库和开发软件包会升级到更新的版本(如果有)。要升级其他组件(包括服务器、客户端、测试套件等),请使用 apt-get install 命令。
MySQL 服务器在 APT 更新后总是会重新启动。
MySQL 的变体和分支由不同的团体通过他们自己的软件存储库或下载站点分发。您可以通过几个步骤,将从 Linux 平台的软件存储库安装的 MySQL 原生发行版替换为 MySQL APT 存储库中的发行版。
MySQL APT 存储库只能替换由 Debian 或 Ubuntu 维护和分发的 MySQL 发行版。它不能替换发行版原生存储库内外发现的任何 MySQL 分支。要替换此类 MySQL 分支,您必须先卸载它们,然后再使用 MySQL APT 存储库安装 MySQL。请按照分支分发商提供的卸载说明进行操作,并在继续操作之前,确保您已备份数据,并且知道如何将数据还原到新服务器。
一些依赖于原生 MySQL 软件包的第三方原生存储库软件包可能无法与 MySQL APT 存储库软件包一起使用,因此不应将它们一起使用;这些软件包包括 akonadi-backend-mysql、handlersocket-mysql-5.5 和 zoneminder。
-
备份您的数据库
为了避免数据丢失,在尝试使用 MySQL APT 存储库替换 MySQL 安装之前,请务必备份您的数据库。有关说明,请参见 第 9 章“备份和恢复”。
-
添加 MySQL APT 存储库和选择版本系列
按照 添加 MySQL Apt 存储库 中给出的说明,将 MySQL APT 存储库添加到您的系统存储库列表中,并选择您想要的版本系列。
-
通过 APT 更新替换原生发行版
根据设计,当您对 MySQL 软件包执行升级时,MySQL APT 存储库会替换您的 MySQL 原生发行版。要执行升级,请按照 使用 MySQL APT 存储库升级 MySQL 中 步骤 4 中给出的相同说明进行操作。
使用 MySQL APT 存储库替换 MySQL 的原生发行版后,使用 apt-get purge、apt-get remove --purge 或 dpkg -P 命令从原生存储库中清除旧的 MySQL 软件包可能会以各种方式影响新安装的 MySQL 服务器。因此,不要从原生存储库软件包中清除旧的 MySQL 软件包。
用于安装 MySQL 服务器及其组件的 MySQL deb
软件包可以从 MySQL 开发者专区的 MySQL 下载页面 或 MySQL APT 存储库下载。deb
软件包来自两个不同的来源,它们以不同的方式安装和配置 MySQL。
如果您使用 MySQL 开发者专区的 deb
软件包安装了 MySQL,现在想使用 MySQL APT 存储库中的软件包替换安装,请按照以下步骤操作:
备份您的数据库。有关说明,请参见 第 9 章“备份和恢复”。
按照之前 添加 MySQL APT 存储库 给出的步骤进行操作。
通过运行以下命令删除旧的 MySQL 安装:
$> sudo dpkg -P mysql
从 MySQL APT 存储库安装 MySQL:
$> sudo apt-get install mysql-server
如果需要,请在新 MySQL 安装上还原数据。有关说明,请参见 第 9 章“备份和恢复”。
使用 APT 移除 MySQL
要卸载使用 MySQL APT 存储库安装的 MySQL 服务器和相关组件,首先,使用以下命令移除 MySQL 服务器:
$> sudo apt-get remove mysql-server
然后,移除随 MySQL 服务器自动安装的任何其他软件:
$> sudo apt-get autoremove
要卸载其他组件,请使用以下命令,将 package-name
替换为您要移除的组件的软件包名称:
$> sudo apt-get remove package-name
要查看您从 MySQL APT 存储库安装的软件包列表,请使用以下命令:
$> dpkg -l | grep mysql | grep ii
升级共享客户端库的特别说明
您可以通过以下命令从 MySQL APT 存储库安装共享客户端库(有关详细信息,请参见 使用 APT 安装其他 MySQL 产品和组件):
$> sudo apt-get install libmysqlclient21
如果您已经从 Linux 平台的软件存储库安装了共享客户端库,则可以使用相同的命令通过 MySQL APT 存储库使用其自己的软件包进行更新(有关详细信息,请参见 通过 APT 更新替换原生发行版)。
使用 APT 存储库更新 MySQL 后,使用旧版本的共享客户端库编译的应用程序应继续工作。
如果您重新编译应用程序并将其与更新后的库动态链接: 与共享库的新版本一样,使用更新的、更新的共享库编译的任何应用程序都可能需要在部署应用程序的系统上安装这些更新的库。 如果这些库不存在,则需要共享库的应用程序可能会失败。 因此,建议在这些系统上部署来自 MySQL 的共享库包。 您可以通过将 MySQL APT 存储库添加到系统(请参阅添加 MySQL Apt 存储库)并使用本节开头给出的命令安装最新的共享客户端库来完成此操作。
MySQL APT 存储库支持在 Debian 和 Ubuntu 系统上安装 MySQL NDB 集群。 有关在其他基于 Debian 的系统上安装 NDB 集群的方法,请参阅使用 .deb 文件安装 NDB 集群。
如果您的系统上已经安装了 MySQL 服务器或 MySQL NDB 集群,请确保在继续操作之前已将其停止并备份了数据和配置文件。
-
为 MySQL NDB 集群添加 MySQL APT 存储库
按照添加 MySQL Apt 存储库中的步骤将 MySQL APT 存储库添加到系统的存储库列表中。 在配置包的安装过程中,当系统询问您要配置哪个 MySQL 产品时,请选择“MySQL 服务器和集群”; 当系统询问您希望接收哪个版本时,请选择“mysql-cluster-
x
.y
.” 返回命令提示符后,请转到下面的步骤 2。如果您的系统上已经安装了配置包,请运行以下命令确保它是最新的
$> sudo apt-get install mysql-apt-config
然后,使用选择主要发行版本中描述的相同方法选择要安装的 MySQL NDB 集群。 当系统询问您要配置哪个 MySQL 产品时,请选择“MySQL 服务器和集群”; 当系统询问您希望接收哪个版本时,请选择“mysql-cluster-
x
.y
.” 返回命令提示符后,使用以下命令更新 MySQL APT 存储库中的包信息$> sudo apt-get update
-
安装 MySQL NDB 集群
要进行 MySQL NDB 集群的最小安装,请按照以下步骤操作
$> sudo apt-get install mysql-cluster-community-server
系统将要求您为 SQL 节点的 root 用户提供密码; 请参阅上面使用 APT 安装 MySQL中给出的有关 root 密码的重要信息。 系统还可能会询问您有关安装的其他问题。
安装管理节点的可执行文件
$> sudo apt-get install mysql-cluster-community-management-server
安装数据节点的可执行文件
$> sudo apt-get install mysql-cluster-community-data-node
-
配置和启动 MySQL NDB 集群
请参阅第 25.3.3 节“NDB 集群的初始配置”了解如何配置 MySQL NDB 集群,以及第 25.3.4 节“NDB 集群的初始启动”了解如何首次启动它。 按照这些说明进行操作时,请根据以下有关 NDB 集群安装的 SQL 节点的详细信息对其进行调整
所有配置文件(如
my.cnf
)都在/etc/mysql
下。所有二进制文件、库、头文件等都在
/usr/bin
和/usr/sbin
下。数据目录为
/var/lib/mysql
安装其他 MySQL NDB 集群产品和组件
您可以使用 APT 从 MySQL APT 存储库安装 MySQL NDB 集群的各个组件和其他产品。 为此,假设您的系统存储库列表中已经有 MySQL APT 存储库(请参阅为 MySQL NDB 集群添加 MySQL APT 存储库),请按照使用 APT 安装其他 MySQL 产品和组件中给出的相同步骤操作。
已知问题: 目前,当您安装测试套件包(mysql-cluster-community-test
)时,不会自动安装运行 MySQL NDB 集群测试套件所需的所有组件。 在运行测试套件之前,请使用apt-get install安装以下软件包
mysql-cluster-community-auto-installer
mysql-cluster-community-management-server
mysql-cluster-community-data-node
mysql-cluster-community-memcached
mysql-cluster-community-java
ndbclient-dev
以下是将 MySQL APT 存储库手动添加到系统软件存储库列表并对其进行配置的步骤,无需使用 MySQL 提供的发行包
下载 MySQL GPG 公钥(有关如何执行此操作,请参阅第 2.1.4.2 节“使用 GnuPG 进行签名检查”)并将其保存到文件中,不要添加任何空格或特殊字符。 然后,使用以下命令将密钥添加到系统的 GPG 密钥环
$> sudo apt-key add path/to/signature-file
或者,您可以使用 apt-key 实用程序将 GPG 密钥直接下载到您的 APT 密钥环
$> sudo apt-key adv --keyserver pgp.mit.edu --recv-keys A8D3785C
注意如上所示,MySQL 8.0.36 及更高版本发行包的 KeyID 为
A8D3785C
。 对于早期的 MySQL 版本,KeyID 为3A79BD29
。 使用错误的密钥可能会导致密钥验证错误。创建一个名为
/etc/apt/sources.list.d/mysql.list
的文件,并将以下格式的存储库条目放入其中(这不是要执行的命令)deb http://repo.mysql.com/apt/{debian|ubuntu}/ {bookworm|jammy} {mysql-tools|mysql-8.4-lts|mysql-8.0}
为您的存储库设置选择相关选项
根据您的平台选择“debian”或“ubuntu”。
为您的系统版本选择适当的版本名称; 例如“bookworm”(对于 Debian 12)和“jammy”(对于 Ubuntu 22.04)。
要安装 MySQL 服务器、客户端和数据库通用文件,请根据您想要的MySQL 系列选择“mysql-8.4”、“mysql-8.0”或“mysql-innovation”。 要稍后切换到另一个发行系列,请返回并使用您的新选择调整条目。 这还包括对 MySQL 路由器和 MySQL Shell 等工具的访问权限。
注意如果您的系统上已经安装了某个版本的 MySQL,请不要在此步骤中选择较低的版本,否则可能会导致不支持的降级操作。
包括“mysql-tools”以安装连接器。
例如,在 Ubuntu 22.04 平台上,在您的
mysql.list
文件中使用以下行从 MySQL APT 存储库安装 MySQL 8.4 和最新的 MySQL 连接器deb http://repo.mysql.com/apt/ubuntu/ jammy mysql-8.4 mysql-tools
使用以下命令从 MySQL APT 存储库获取最新的包信息
$> sudo apt-get update
您已将系统配置为使用 MySQL APT 存储库,现在可以继续使用 APT 安装 MySQL或使用 APT 安装其他 MySQL 产品和组件。