Debian 的默认仓库可能提供的是 MariaDB 而非 Oracle MySQL,这对于需要官方 MySQL 数据库引擎的应用程序来说可能是个问题。本指南将说明如何使用官方 MySQL APT 仓库在 Debian 12(Bookworm)和 Debian 13(Trixie)上安装 MySQL。

您将学习如何配置仓库、安装 MySQL Server、验证安装,并完成必要的安全配置以准备您的数据库环境。

为什么在 Debian 上 “apt install mysql-server” 不起作用

如果您在 Debian 上运行 apt install mysql-server,软件包管理器可能会安装 MariaDB 而不是 MySQL。这是因为 Debian 现在在其仓库中使用 MariaDB 作为默认的 MySQL 兼容数据库选项。

MariaDB 与 MySQL:您应该了解什么

MariaDB 和 MySQL 同源且高度兼容,但现在它们作为独立的数据库系统进行开发。如果您的应用程序需要特定的 MySQL 版本或功能,您应该从官方 MySQL APT 仓库安装 MySQL。

如何检查已安装的数据库服务器

使用以下命令检查当前安装的是哪个数据库引擎:

bash
mysql --version

您也可以使用以下命令检查已安装的软件包:

bash
dpkg -l | grep -E "mysql-server|mariadb-server"

这些命令有助于在继续安装过程之前确认您的 Debian 系统运行的是 Oracle MySQL 还是 MariaDB。

如何在 debian 上安装 mysql

如何逐步在 Debian 上安装 MySQL

在 Debian 上安装 MySQL 涉及几个步骤,包括准备系统、选择正确的安装源、安装 MySQL Server 以及完成初始配置。在开始安装之前,请完成以下先决条件以确保顺利设置。

在 Debian 上安装 MySQL 前的先决条件

在 Debian 上安装 MySQL 之前,

  1. 检查您的系统信息
  2. 根据您的需求选择安装方法。

要检查您的 Debian 版本,请运行:

bash
cat /etc/os-release

在输出中查找 VERSION_CODENAME 或 VERSION 字段。此信息有助于确保您在安装过程中使用正确的仓库配置。

Debian 的默认仓库可能提供 MariaDB 而非 Oracle MySQL。如果您的应用程序需要特定的 MySQL 版本、Oracle MySQL 功能或与现有 MySQL 环境的兼容性,请使用官方 MySQL APT 仓库。

MySQL APT 仓库允许您直接从官方源安装受支持的 MySQL 版本,包括 MySQL 8.4 LTS。

步骤 1:更新您的 Debian 系统

在安装 MySQL 之前,更新您的软件包索引并升级现有软件包,以确保您的系统具有最新的依赖项。

运行:

bash
sudo apt update
sudo apt upgrade -y

安装用于管理外部仓库的必要工具:

sudo apt install -y wget gnupg lsb-release

步骤 2:添加官方 MySQL APT 仓库

官方 MySQL APT 仓库允许您安装 Oracle MySQL 软件包,而不是依赖默认的 Debian 仓库。

下载 MySQL APT 仓库配置包:

bash
cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb

安装仓库配置包:

bash
sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb

在配置过程中:

  1. 选择 MySQL Server & Cluster
  2. 选择所需的 MySQL 版本,例如 mysql-8.4-lts
  3. 选择 Ok 以保存配置。

配置仓库后,更新您的软件包索引:

bash
sudo apt update

步骤 3:安装 MySQL Server

从配置的 MySQL 仓库安装 MySQL Server:

bash
sudo apt install -y mysql-server

在安装过程中,MySQL 可能会根据您的软件包版本提示您配置 root 身份验证方法。对于 MySQL 8.x,caching_sha2_password 是推荐的身份验证插件,因为它比传统身份验证方法提供更强的安全性。

安装后,检查 MySQL 服务是否正在运行:

bash
sudo systemctl status mysql

启用 MySQL 在重启后自动启动:

bash
sudo systemctl enable mysql

步骤 4:保护您的 MySQL 安装

默认的 MySQL 安装可能包含不适合生产环境的设置。使用内置的安全脚本来删除不必要的访问并改进服务器配置。

运行:

bash
sudo mysql_secure_installation

该脚本可帮助您:

  • 删除匿名用户帐户。
  • 禁用 root 帐户的远程登录。
  • 删除默认的测试数据库。
  • 重新加载权限表。

如果需要,您还可以启用 Validate Password Component 来强制实施更强的密码策略。

步骤 5:创建数据库和用户

应用程序应避免使用 root 帐户连接 MySQL。相反,应创建一个具有所需权限的专用数据库用户。

登录 MySQL:

sql
sudo mysql -u root -p

创建数据库和用户:

sql
CREATE DATABASE app_database;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'YourStrongAndUniquePassword123!';
GRANT ALL PRIVILEGES ON app_database.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

使用独立的数据库用户可以提高安全性,并使权限管理更加容易。

步骤 6:启用远程访问(可选)

默认情况下,MySQL 只接受本地连接。如果您的应用程序从另一台服务器连接,请配置 MySQL 以监听外部连接。

打开 MySQL 配置文件:

bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address 设置并更新它:

bash
bind-address = 0.0.0.0

或者,指定一个私有 IP 地址,以仅允许来自受信任网络的连接。

重启 MySQL 以应用更改:

bash
sudo systemctl restart mysql

避免将 MySQL 直接暴露在公共互联网上。使用防火墙规则(例如 ufwnftables)将访问限制为仅受信任的 IP 地址。

如何彻底卸载 Debian 上的 MySQL

从 Debian 中删除 MySQL 不仅仅是卸载软件包。彻底删除还可能包括删除配置文件、仓库设置和数据库文件。

首先,停止 MySQL 服务:

bash
sudo systemctl stop mysql

删除已安装的 MySQL 软件包和配置文件:

bash
sudo apt purge -y mysql-server mysql-client mysql-common mysql-apt-config

清理未使用的依赖项:

bash
sudo apt autoremove -y

如果您添加了官方 MySQL APT 仓库,请在更新软件包列表之前删除其仓库配置:

bash
sudo rm -f /etc/apt/sources.list.d/mysql.list
sudo apt update

如果您想完全删除所有数据库、日志和 MySQL 配置文件,请删除剩余的数据目录:

bash
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
注意:这些命令将永久删除所有 MySQL 数据库和配置文件。如果您以后可能需要这些数据,请在运行它们之前创建备份。

常见安装错误排查

即使按照正确的安装步骤操作,您也可能会遇到与身份验证、服务、软件包冲突或远程连接相关的问题。以下解决方案涵盖了 Debian 上一些最常见的 MySQL 安装问题。

用户 ‘root’@’localhost’ 访问被拒绝(错误 1698)

此错误通常发生在 root 帐户配置为通过操作系统而非密码进行身份验证时。

尝试使用管理员权限登录:

bash
sudo mysql -u root

如果您想对 root 帐户使用密码身份验证,请从 MySQL shell 更新身份验证方法:

sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YourNewStrongPassword';
FLUSH PRIVILEGES;

请注意,更改 root 身份验证方法不是必需的。对于许多 Debian 环境,基于 socket 的身份验证提供了一种安全的本地管理方式。

MySQL 服务在安装后无法启动

如果 MySQL 无法启动,请先检查服务日志以确定根本原因:

bash
sudo journalctl -u mysql -n 50 --no-pager

常见原因包括权限问题、系统资源不足或其他数据库服务已占用 3306 端口。

检查是否有其他进程正在使用 MySQL 端口:

bash
sudo ss -tulpn | grep 3306

在重启 MySQL 之前停止冲突的服务。

MySQL 和 MariaDB 软件包冲突

在之前已配置 MariaDB 的情况下安装 MySQL 可能会因文件或依赖项重叠而导致软件包冲突。

在删除现有数据库软件包之前,请确认您不再需要当前的 MariaDB 安装。如果您正在设置一台干净的服务器,请删除冲突的软件包:

bash
sudo apt purge mariadb-server mariadb-client
sudo apt autoremove -y

然后再次运行 MySQL 安装过程。

修复 “Host is not allowed to connect”(错误 1130)

此错误表示 MySQL 服务器是可访问的,但用户帐户没有从远程主机连接的权限。

首先,通过检查 bind-address 设置来验证 MySQL 是否接受外部连接:

bash
/etc/mysql/mysql.conf.d/mysqld.cnf

然后创建或更新具有正确主机权限的数据库用户:

bash
CREATE USER 'app_user'@'remote_ip' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON app_database.* TO 'app_user'@'remote_ip';
FLUSH PRIVILEGES;

使用 % 作为主机允许来自任何 IP 地址的连接,这在测试环境中可能可以接受,但在生产环境中应加以限制。

为新的 MySQL 服务器提供可靠的备份

一旦 MySQL 启动并运行,人们很容易继续前进而忘记备份,直到出现问题。但一个未受保护的数据库距离成为一个真正的问题只差一次糟糕的 DROP TABLE、磁盘故障或错误的升级。

这就是像 i2Backup 这样的专用 MySQL 数据库备份解决方案值得考虑的地方。它处理调度、存储和恢复过程,因此备份不依赖于有人记得运行脚本。

i2Backup 具有与本文介绍的 MySQL 部署相关的几个功能:

  • 实时和定时数据库备份: i2Backup 保护独立 MySQL 实例和集群设置,并持续捕获日志数据,使恢复点接近实时。
  • 自动备份调度: 一旦配置完成,备份任务将按小时、每天、每周或每月自动运行,无需人工干预,消除了错过备份窗口的风险。
  • 时间点恢复: 使用连续备份日志和多个恢复点,您可以将数据库恢复到损坏或意外删除之前的特定时刻。
  • 多种存储目标: 备份可以发送到本地存储、NAS、对象存储或云端,这支持 3-2-1 备份策略,而不是在同一个服务器上保留单个副本。
  • 数据加密: 传输中的备份数据使用 AES 或 SM4 加密保护,这在安装过程中启用远程访问时尤为重要。

设置 MySQL 是第一步。确保数据在发生故障后能够恢复才是使数据库服务器具备生产环境就绪性的关键。如果您正在寻找一个超越临时 dump 脚本的备份解决方案,Info2soft 还提供 i2CDP 用于近乎零 RPO 的持续数据保护,以及 i2Availability 用于需要除备份覆盖之外的自动故障转移的企业。

常见问题

问题 1:Debian 12 是否支持 MySQL 8?

是的。当通过官方 MySQL APT 仓库安装时,Debian 12 可以运行 MySQL 8.x,包括 MySQL 8.0 和 MySQL 8.4 LTS。这允许您直接安装和管理 Oracle MySQL 软件包,而不是依赖 Debian 的默认数据库软件包。

 

问题 2:我可以同时安装 MySQL 和 MariaDB 吗?

可以,但在同一台主机上运行这两个数据库系统需要仔细配置。它们可能会因为使用相似的软件包名称、配置路径和默认的 MySQL 端口(3306)而产生冲突。

对于测试或开发环境,使用独立的容器通常是最简单的方法。

 

问题 3:如何检查我安装的 MySQL 版本?

运行以下命令:

mysql --version

您也可以从 MySQL 命令行检查确切的服务器版本:

SELECT VERSION();

 

问题 4:MySQL 在 Debian 上免费使用吗?

MySQL Community Server 在 GNU 通用公共许可证(GPL)下可用,可用于许多开发和生产部署。但是,某些企业功能和商业产品需要单独的许可。

结论

Debian 的默认仓库安装的是 MariaDB 而非 MySQL,因此添加官方 MySQL APT 仓库是在 Debian 12 或 13 上获得真正 MySQL 的可靠方法。从设置、安全到远程访问和故障排除,本指南涵盖了让 MySQL 干净运行所需的内容。

一旦 MySQL 启动并运行,保护其中的数据与安装本身同样重要。Info2soft 的 i2Backup 处理这一方面,因此备份不依赖于有人记得运行脚本。

博客分类底部

准备好构建企业数据韧性了吗?

立即开启 60 天免费试用,或预约产品演示,了解英方软件如何为您的核心业务提供「零中断、零丢失」的数据保护。

请先完成图形验证

验  证  码:

英方官网验证码
第三方二维码 第三方二维码
英方公告铃铛图标
英方公告铃铛图标

公告

英方侧边栏向右箭头
英方高亮提示圆点
英方软件公告
各位求职者、合作伙伴:
近期有第三方冒用英方名义发布虚假招聘、不实业务信息。我司正规招聘全程零收费,非官网渠道信息均不作数。
信息核验热线:400-0078-655
遇诈骗请保留证据,及时联系我们并报警
英方软件
2026 年 6 月 23 日
英方邮件咨询图标
英方邮件咨询图标

邮件

英方销售支持图标
英方销售支持图标

销售

英方侧边栏向右箭头
联系销售:400-0078-655 转 1