本节提供有关使用 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 9.0)在组件名称中包含 “-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.9 节,“套接字对等凭证可插拔身份验证” 为使用 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
要安装共享客户端库
$> sudo apt-get install libmysqlclient21
此功能仅在 64 位系统上受支持。
您可以下载 MySQL 的源代码并使用 MySQL APT 仓库构建它
将 MySQL APT 仓库添加到系统仓库列表中,并选择您想要的 major 版本系列(有关说明,请参阅 添加 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 仓库添加到系统时 选择的版本系列。如果您想升级到另一个版本系列,请按照 选择 major 版本 中给出的步骤进行选择。
一般来说,要从一个版本系列升级到另一个版本系列,请升级到下一个系列,而不是跳过一个系列。例如,如果您当前运行的是 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 Cluster。 有关在其他基于 Debian 的系统上安装 NDB Cluster 的方法,请参阅 使用 .deb 文件安装 NDB Cluster。
如果您已经在系统上安装了 MySQL 服务器或 MySQL NDB Cluster,请确保在继续之前停止它并备份您的数据和配置文件。
-
为 MySQL NDB Cluster 添加 MySQL APT 存储库
按照 添加 MySQL Apt 存储库 中的步骤将 MySQL APT 存储库添加到系统存储库列表中。 在配置软件包的安装过程中,当系统询问您要配置哪个 MySQL 产品时,请选择 “MySQL Server & Cluster”; 当系统询问您希望接收哪个版本时,请选择 “mysql-cluster-
x
.y
.” 返回命令提示符后,转到下面的第 2 步。如果您已经在系统上安装了配置软件包,请确保通过运行以下命令将其更新到最新版本
$> sudo apt-get install mysql-apt-config
然后,使用 选择主发行版本 中描述的相同方法选择 MySQL NDB Cluster 进行安装。 当系统询问您要配置哪个 MySQL 产品时,请选择 “MySQL Server & Cluster”; 当系统询问您希望接收哪个版本时,请选择 “mysql-cluster-
x
.y
.” 返回命令提示符后,使用以下命令从 MySQL APT 存储库更新软件包信息$> sudo apt-get update
-
安装 MySQL NDB Cluster
要最小限度地安装 MySQL NDB Cluster,请按照以下步骤操作
$> 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 Cluster
请参阅 第 25.3.3 节,“NDB Cluster 的初始配置”,了解如何配置 MySQL NDB Cluster,以及 第 25.3.4 节,“NDB Cluster 的初始启动”,了解如何首次启动它。 按照这些说明操作时,请根据以下有关 NDB Cluster 安装的 SQL 节点的详细信息进行调整
所有配置文件(如
my.cnf
)都在/etc/mysql
下所有二进制文件、库、头文件等都在
/usr/bin
和/usr/sbin
下数据目录为
/var/lib/mysql
安装其他 MySQL NDB Cluster 产品和组件
您可以使用 APT 从 MySQL APT 存储库安装 MySQL NDB Cluster 的单个组件和附加产品。 为此,假设您已经在系统存储库列表中拥有 MySQL APT 存储库(请参阅 为 MySQL NDB Cluster 添加 MySQL APT 存储库),请按照 使用 APT 安装其他 MySQL 产品和组件 中给出的相同步骤操作。
已知问题: 目前,并非运行 MySQL NDB Cluster 测试套件所需的所有组件都会在您安装测试套件软件包(mysql-cluster-community-test
)时自动安装。 在运行测试套件之前,请使用 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 9.0)。 要稍后切换到其他发行版系列,请返回并使用新的选择调整条目。 这还包括对 MySQL Router 和 MySQL Shell 等工具的访问。
注意如果您已经在系统上安装了 MySQL 版本,请不要在此步骤中选择较低版本,否则可能会导致不支持的降级操作。
包含 “mysql-tools” 以安装连接器。
例如,在 Ubuntu 22.04 平台上,请在
mysql.list
文件中使用以下行来安装 MySQL 8.4 和来自 MySQL APT 存储库的最新 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 产品和组件。