以下说明假设您系统上没有安装过 MySQL(无论是 Oracle 或其他方提供的);如果不是这种情况,请按照 使用 MySQL APT 存储库替换本机 MySQL 发行版 或 使用 MySQL APT 存储库替换通过直接 deb 包下载安装的 MySQL 服务器 中的说明进行操作。
添加 MySQL Yum 存储库。 首先,将 MySQL APT 存储库添加到系统的软件存储库列表中。按照以下步骤操作:
-
访问 MySQL APT 存储库的下载页面:https://dev.mysql.com/downloads/repo/apt/。
-
选择并下载适合您 Linux 发行版的发行包。
虽然这不是每次更新所必需的,但它确实更新了 MySQL 存储库信息,以包括当前信息。例如,
mysql-apt-config_0.8.26-1_all.deb
是第一个 APT 存储库配置文件,它添加了从 MySQL 8.1 开始的创新版本轨道。 -
使用以下命令安装下载的发行包,replace
version-specific-package-name
with the name of the downloaded package(如果您不在下载包所在的文件夹中运行命令,请添加路径):$> 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)的版本。如果您不确定选择哪个版本,请不要更改默认选项。您也可以选择 none 如果您不想安装特定组件。完成所有组件的选择后,选择 Ok 以完成配置和安装发行包。
Note从 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 Yum 存储库)。但是,您可以随时切换到另一个支持的主要版本系列。使用以下命令重新配置安装的配置包:
$> sudo dpkg-reconfigure mysql-apt-config
然后,一个对话框将询问您选择要使用的主要版本。进行选择,然后选择 Ok。返回命令提示符后,使用以下命令更新 MySQL APT 存储库中的包信息:
$> sudo apt-get update
最新版本将在您下次使用 apt-get install 命令时安装。
您可以使用相同的方法来更改其他 MySQL 组件的版本,以便使用 MySQL APT 存储库安装。
使用以下命令安装 MySQL:
$> sudo apt-get install mysql-server
这将安装 MySQL 服务器包、客户端包和数据库公共文件包。
在安装过程中,您将被要求提供 MySQL 安装的根用户密码。
请记住您设置的根密码。如果您想以后设置密码,可以在对话框中留空 密码 字段,然后单击 确定;在这种情况下,对 Unix 套接字文件的连接将使用 第 8.4.1.10 节,“Socket Peer-Credential Pluggable Authentication” 进行身份验证。您可以使用 mysql_secure_installation 程序来设置根密码。
安装完成后,MySQL 服务器将自动启动。您可以使用以下命令检查 MySQL 服务器的状态:
$> systemctl status mysql
如果操作系统启用了 systemd,可以使用标准的 systemctl 命令(或使用 service 命令,参数反转)来管理 MySQL 服务器服务,例如 stop、start、status 和 restart。MySQL 服务默认启用,并在系统启动时启动。请参阅 第 2.5.9 节,“使用 systemd 管理 MySQL 服务器” 以获取更多信息。
一些第三方本机存储库包可能与 MySQL APT 存储库包不兼容,例如 akonadi-backend-mysql、handlersocket-mysql-5.5 和 zoneminder,不应与 MySQL APT 存储库包一起使用。
您可以使用 APT 从 MySQL APT 存储库安装单个 MySQL 组件。假设您已经将 MySQL APT 存储库添加到系统的存储库列表中(请参阅 添加 MySQL Yum 存储库 以获取说明),首先,使用以下命令从 MySQL APT 存储库获取最新的包信息:
$> sudo apt-get update
使用以下命令安装您选择的包,replace package-name
with the name of the package to install:
$> 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 Yum 存储库 以获取说明)。
-
使用以下命令更新 MySQL APT 存储库的包信息(这步骤是必需的):
$> sudo apt-get update
-
安装构建过程所需的包:
$> sudo apt-get build-dep mysql-server
-
下载 MySQL 的源代码,然后构建它(在要下载文件和构建的文件夹中运行以下命令):
$> apt-get source -b mysql-server
deb
包用于安装各种 MySQL 组件。 -
选择要安装的 MySQL 组件的
deb
包,然后使用以下命令安装:$> sudo dpkg -i package-name.deb
注意 MySQL 软件包之间存在依赖关系。对于 MySQL 服务器的基本安装,按照以下步骤安装数据库公共文件包、客户端包、客户端元包、服务器包和服务器元包:
-
使用以下命令预配置 MySQL 服务器包:
$> sudo dpkg-preconfigure mysql-community-server_version-and-platform-specific-part.deb
您将被要求提供 MySQL 安装的根用户密码;请参阅 使用 APT 安装 MySQL 中的重要信息关于根密码。您可能还会被问及其他安装问题。
-
使用单个命令安装所需的包:
$> 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 APT 存储库在系统上安装了 MySQL;如果不是这种情况,请按照 使用 MySQL APT 存储库替换本机 MySQL 分发 或 使用 MySQL APT 存储库替换直接 deb 包下载的 MySQL 服务器 中的说明进行操作。请注意,您不能使用 MySQL APT 存储库升级从非本机软件存储库安装的 MySQL 分发(例如来自 MariaDB 或 Percona)。
使用 MySQL APT 存储库执行就地升级,以便将旧版本替换为新版本,并使用旧数据文件运行新版本:
-
确保您已经将 MySQL APT 存储库添加到系统的存储库列表中(请参阅 添加 MySQL Yum 存储库 中的说明)。
-
确保您已经获取了 MySQL APT 存储库的最新包信息:
$> sudo apt-get update
-
请注意,默认情况下,MySQL APT 存储库将升级到您选择的版本系列中(当您 添加 MySQL APT 存储库到系统 时)。如果您想升级到另一个版本系列,请按照 选择主要版本 中的步骤进行操作。
一般来说,要从一个版本系列升级到另一个版本系列,请逐步升级,而不是跳过一个系列。例如,如果您当前正在运行 MySQL 5.6 并想升级到较新版本系列,首先升级到 MySQL 5.7,然后再升级到 8.0。
Important-
有关从 MySQL 5.6 升级到 5.7 的重要信息,请参阅 从 MySQL 5.6 升级到 5.7。
-
有关从 MySQL 5.7 升级到 8.0 的重要信息,请参阅 从 MySQL 5.7 升级到 8.0。
-
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
Note如果您使用 apt-get upgrade 执行系统范围的升级,只有 MySQL 库和开发包将被升级到最新版本(如果可用)。要升级其他组件,包括服务器、客户端、测试套件等,请使用 apt-get install 命令。
-
MySQL 服务器在 APT 更新后总是重新启动的。在 MySQL 8.0.16 之前,服务器重新启动后,运行 mysql_upgrade 以检查和可能解决旧数据与升级软件之间的不兼容问题。mysql_upgrade 也执行其他功能;请参阅 第 6.4.5 节,“mysql_upgrade — Deprecated; Performs No Tasks and Exits with Status 0” 了解详细信息。从 MySQL 8.0.16 开始,这一步骤不再需要,因为服务器现在执行所有以前由 mysql_upgrade 执行的任务。
MySQL 的变体和分支由不同的方通过自己的软件仓库或下载站点分发。您可以在几个步骤中使用 MySQL APT 仓库替换从 Linux 平台的软件仓库安装的 MySQL 发行版。
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 Yum 仓库 中的说明将 MySQL APT 仓库添加到系统的仓库列表中,并选择要使用的发行系列。
-
使用 APT 更新替换本机发行版
按照设计,MySQL APT 仓库将在您执行 MySQL 包升级时替换本机 MySQL 发行版。按照 步骤 4 中的说明执行升级。
一旦使用 MySQL APT 仓库替换了本机 MySQL 发行版,请勿使用 apt-get purge、apt-get remove --purge 或 dpkg -P 命令卸载旧的 MySQL 包,从本机仓库中删除它们可能会以各种方式影响新安装的 MySQL 服务器。因此,不要卸载旧的 MySQL 包。
deb
包可以从 MySQL 的开发者区域的 MySQL 下载页面或 MySQL APT 仓库下载,以安装 MySQL 服务器和其组件。来自这两个来源的 deb
包不同,并以不同的方式安装和配置 MySQL。
如果您使用 MySQL 开发者区域的 deb
软件包安装了 MySQL,现在想使用 MySQL APT 存储库中的安装,按照以下步骤进行:
-
备份您的数据库。请参阅 第 9 章,备份和恢复 获取说明。
-
按照之前的步骤添加 MySQL APT 存储库:添加 MySQL Yum 存储库。
-
通过运行以下命令删除旧的 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
然后,删除自动安装的其他软件:
$> sudo apt-get autoremove
要卸载其他组件,使用以下命令,replace package-name
with the name of the package of the component you want to remove:
$> sudo apt-get remove package-name
要查看从 MySQL APT 存储库安装的软件包列表,使用以下命令:
$> dpkg -l | grep mysql | grep ii
升级共享客户端库的特殊注意事项
可以使用以下命令从 MySQL APT 存储库安装共享客户端库(请参阅 安装其他 MySQL 产品和组件 获取更多详细信息):
$> sudo apt-get install libmysqlclient21
如果您已经从 Linux 平台的软件仓库安装了共享客户端库,可以使用相同的命令更新到 MySQL APT 存储库的包(请参阅 用 APT 更新替换本机分布 获取更多详细信息)。
使用 APT 存储库更新 MySQL 后,使用旧版本共享客户端库编译的应用程序应该继续工作。
如果您重新编译应用程序并动态链接到更新的库: 与新的共享库版本一起,任何使用更新的共享库编译的应用程序可能需要这些更新的库在部署系统上。如果这些库不存在,需要共享库的应用程序可能会失败。因此,建议在这些系统上部署 MySQL 的共享库包。您可以通过添加 MySQL APT 存储库到这些系统(请参阅 添加 MySQL Yum 存储库)并使用命令安装最新的共享客户端库来实现。
-
MySQL APT 存储库支持在 Debian 和 Ubuntu 系统上安装 MySQL NDB 集群。有关在其他基于 Debian 的系统上安装 NDB 集群的方法,请参阅 使用 .deb 文件安装 NDB 集群。
-
如果您已经在系统上安装了 MySQL 服务器或 MySQL NDB 集群,请确保停止服务并备份数据和配置文件,然后继续。
-
添加 MySQL APT 存储库以安装 MySQL NDB 集群
按照 添加 MySQL Yum 存储库 的步骤添加 MySQL APT 存储库到系统的存储库列表。在配置包安装过程中,当您被问及要配置哪个 MySQL 产品时,选择 “MySQL 服务器 & 集群”;当您被问及要接收哪个版本时,选择 “mysql-cluster-
x
.y
.” 然后,返回命令提示符,继续执行步骤 2。如果您已经在系统上安装了配置包,请确保它是最新的,通过运行以下命令:
$> sudo apt-get install mysql-apt-config
然后,使用与选择主要版本相同的方法选择 MySQL NDB Cluster 进行安装。当您被问及要配置哪个 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 节点的根用户密码;请参阅 使用 APT 安装 MySQL 中的重要信息关于根密码。您可能还会被问及其他安装问题。
-
安装管理节点的可执行文件:
$> 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 集群的初始启动”,了解如何首次启动它。当按照这些说明操作时,请根据以下关于 SQL 节点的 NDB 集群安装的详细信息进行调整:
-
所有配置文件(如
my.cnf
)都在/etc/mysql
下 -
所有二进制文件、库、头文件等都在
/usr/bin
和/usr/sbin
下 -
数据目录是
/var/lib/mysql
-
安装附加的 MySQL NDB 集群产品和组件
您可以使用 APT 从 MySQL APT 存储库安装 MySQL NDB 集群的单个组件和附加产品。为此,假设您已经在系统的存储库列表中添加了 MySQL APT 存储库(参阅 添加 MySQL Yum 存储库以安装 MySQL NDB 集群),然后按照 使用 APT 安装附加的 MySQL 产品和组件 中的步骤操作。
已知问题: 目前,不是所有组件都可以自动安装到 MySQL NDB 集群测试套件中(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 存储库添加到系统的软件存储库列表并配置它的步骤,without 使用 MySQL 提供的发布包:
-
下载 MySQL GPG 公共密钥(参阅 第 2.1.4.2 节,“使用 GnuPG 进行签名检查”,了解如何执行该操作),并将其保存到一个文件中,不要添加任何空格或特殊字符。然后,使用以下命令将密钥添加到系统的 GPG 密钥环中:
$> sudo apt-key add path/to/signature-file
-
或者,您可以使用 apt-key 实用程序直接从 APT 密钥环下载 GPG 密钥:
$> sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 3A79BD29
NoteMySQL 8.0.28 发布包和更高版本的密钥 ID 是
3A79BD29
,如上所示。对于早期的 MySQL 发布版本,密钥 ID 是5072E1F5
。使用不正确的密钥可能会导致密钥验证错误。 -
创建一个名为
/etc/apt/sources.list.d/mysql.list
的文件,并将存储库条目添加到其中,格式如下(这不是要执行的命令):deb http://repo.mysql.com/apt/{debian|ubuntu}/ {buster|bionic} {mysql-5.7|mysql-8.0|workbench-8.0|connector-python-8.0}
选择适合您的存储库设置的选项:
-
选择 “debian” 或 “ubuntu” 根据您的平台。
-
选择适合您系统版本的版本名称;例如 “bullseye”(适用于 Debian 11)和 “jammy”(适用于 Ubuntu 22.04)。
-
要安装 MySQL 服务器、客户端和数据库公共文件,请选择 “mysql-5.7” 或 “mysql-8.0” 根据您想要的 MySQL 版本。要切换到另一个版本系列,请返回并调整您的选择。
Note如果您已经在系统上安装了 MySQL 的版本,请不要在此步骤中选择较低的版本,否则可能会导致不支持的降级操作。
-
要安装组件,如 MySQL Workbench 或 MySQL Connector/Python,请为每个组件创建一个单独的条目,分别指定 “workbench-8.0” 或 “connector-python-8.0” 在每个条目结尾。
例如,在 Ubuntu 18.04 平台上,使用以下行在
mysql.list
文件中安装 MySQL 8.0 和 MySQL Connector/Python 从 MySQL APT 存储库:deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-8.0 deb http://repo.mysql.com/apt/ubuntu/ bionic connector-python-8.0
-
-
使用以下命令从 MySQL APT 存储库获取最新的软件包信息:
$> sudo apt-get update
您已经配置了系统以使用 MySQL APT 存储库,现在可以继续 使用 APT 安装 MySQL 或 使用 APT 安装附加的 MySQL 产品和组件。