KVM虚拟化 vs VMware:2026年全面对比指南
2026-08-24
2026-08-24
2026-08-24
2026-08-24
Debian 的默认仓库可能提供的是 MariaDB 而非 Oracle MySQL,这对于需要官方 MySQL 数据库引擎的应用程序来说可能是个问题。本指南将说明如何使用官方 MySQL APT 仓库在 Debian 12(Bookworm)和 Debian 13(Trixie)上安装 MySQL。
您将学习如何配置仓库、安装 MySQL Server、验证安装,并完成必要的安全配置以准备您的数据库环境。
如果您在 Debian 上运行 apt install mysql-server,软件包管理器可能会安装 MariaDB 而不是 MySQL。这是因为 Debian 现在在其仓库中使用 MariaDB 作为默认的 MySQL 兼容数据库选项。
MariaDB 与 MySQL:您应该了解什么
MariaDB 和 MySQL 同源且高度兼容,但现在它们作为独立的数据库系统进行开发。如果您的应用程序需要特定的 MySQL 版本或功能,您应该从官方 MySQL APT 仓库安装 MySQL。
如何检查已安装的数据库服务器
使用以下命令检查当前安装的是哪个数据库引擎:
mysql --version
您也可以使用以下命令检查已安装的软件包:
dpkg -l | grep -E "mysql-server|mariadb-server"
这些命令有助于在继续安装过程之前确认您的 Debian 系统运行的是 Oracle MySQL 还是 MariaDB。

在 Debian 上安装 MySQL 涉及几个步骤,包括准备系统、选择正确的安装源、安装 MySQL Server 以及完成初始配置。在开始安装之前,请完成以下先决条件以确保顺利设置。
在 Debian 上安装 MySQL 之前,
要检查您的 Debian 版本,请运行:
cat /etc/os-release
在输出中查找 VERSION_CODENAME 或 VERSION 字段。此信息有助于确保您在安装过程中使用正确的仓库配置。
Debian 的默认仓库可能提供 MariaDB 而非 Oracle MySQL。如果您的应用程序需要特定的 MySQL 版本、Oracle MySQL 功能或与现有 MySQL 环境的兼容性,请使用官方 MySQL APT 仓库。
MySQL APT 仓库允许您直接从官方源安装受支持的 MySQL 版本,包括 MySQL 8.4 LTS。
在安装 MySQL 之前,更新您的软件包索引并升级现有软件包,以确保您的系统具有最新的依赖项。
运行:
sudo apt update
sudo apt upgrade -y
安装用于管理外部仓库的必要工具:
sudo apt install -y wget gnupg lsb-release
官方 MySQL APT 仓库允许您安装 Oracle MySQL 软件包,而不是依赖默认的 Debian 仓库。
下载 MySQL APT 仓库配置包:
cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
安装仓库配置包:
sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb
在配置过程中:
配置仓库后,更新您的软件包索引:
sudo apt update
从配置的 MySQL 仓库安装 MySQL Server:
sudo apt install -y mysql-server
在安装过程中,MySQL 可能会根据您的软件包版本提示您配置 root 身份验证方法。对于 MySQL 8.x,caching_sha2_password 是推荐的身份验证插件,因为它比传统身份验证方法提供更强的安全性。
安装后,检查 MySQL 服务是否正在运行:
sudo systemctl status mysql
启用 MySQL 在重启后自动启动:
sudo systemctl enable mysql
默认的 MySQL 安装可能包含不适合生产环境的设置。使用内置的安全脚本来删除不必要的访问并改进服务器配置。
运行:
sudo mysql_secure_installation
该脚本可帮助您:
如果需要,您还可以启用 Validate Password Component 来强制实施更强的密码策略。
应用程序应避免使用 root 帐户连接 MySQL。相反,应创建一个具有所需权限的专用数据库用户。
登录 MySQL:
sudo mysql -u root -p
创建数据库和用户:
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 配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address 设置并更新它:
bind-address = 0.0.0.0
或者,指定一个私有 IP 地址,以仅允许来自受信任网络的连接。
重启 MySQL 以应用更改:
sudo systemctl restart mysql
避免将 MySQL 直接暴露在公共互联网上。使用防火墙规则(例如 ufw 或 nftables)将访问限制为仅受信任的 IP 地址。
从 Debian 中删除 MySQL 不仅仅是卸载软件包。彻底删除还可能包括删除配置文件、仓库设置和数据库文件。
首先,停止 MySQL 服务:
sudo systemctl stop mysql
删除已安装的 MySQL 软件包和配置文件:
sudo apt purge -y mysql-server mysql-client mysql-common mysql-apt-config
清理未使用的依赖项:
sudo apt autoremove -y
如果您添加了官方 MySQL APT 仓库,请在更新软件包列表之前删除其仓库配置:
sudo rm -f /etc/apt/sources.list.d/mysql.list
sudo apt update
如果您想完全删除所有数据库、日志和 MySQL 配置文件,请删除剩余的数据目录:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
即使按照正确的安装步骤操作,您也可能会遇到与身份验证、服务、软件包冲突或远程连接相关的问题。以下解决方案涵盖了 Debian 上一些最常见的 MySQL 安装问题。
此错误通常发生在 root 帐户配置为通过操作系统而非密码进行身份验证时。
尝试使用管理员权限登录:
sudo mysql -u root
如果您想对 root 帐户使用密码身份验证,请从 MySQL shell 更新身份验证方法:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YourNewStrongPassword';
FLUSH PRIVILEGES;
请注意,更改 root 身份验证方法不是必需的。对于许多 Debian 环境,基于 socket 的身份验证提供了一种安全的本地管理方式。
如果 MySQL 无法启动,请先检查服务日志以确定根本原因:
sudo journalctl -u mysql -n 50 --no-pager
常见原因包括权限问题、系统资源不足或其他数据库服务已占用 3306 端口。
检查是否有其他进程正在使用 MySQL 端口:
sudo ss -tulpn | grep 3306
在重启 MySQL 之前停止冲突的服务。
在之前已配置 MariaDB 的情况下安装 MySQL 可能会因文件或依赖项重叠而导致软件包冲突。
在删除现有数据库软件包之前,请确认您不再需要当前的 MariaDB 安装。如果您正在设置一台干净的服务器,请删除冲突的软件包:
sudo apt purge mariadb-server mariadb-client
sudo apt autoremove -y
然后再次运行 MySQL 安装过程。
此错误表示 MySQL 服务器是可访问的,但用户帐户没有从远程主机连接的权限。
首先,通过检查 bind-address 设置来验证 MySQL 是否接受外部连接:
/etc/mysql/mysql.conf.d/mysqld.cnf
然后创建或更新具有正确主机权限的数据库用户:
CREATE USER 'app_user'@'remote_ip' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON app_database.* TO 'app_user'@'remote_ip';
FLUSH PRIVILEGES;
使用 % 作为主机允许来自任何 IP 地址的连接,这在测试环境中可能可以接受,但在生产环境中应加以限制。
一旦 MySQL 启动并运行,人们很容易继续前进而忘记备份,直到出现问题。但一个未受保护的数据库距离成为一个真正的问题只差一次糟糕的 DROP TABLE、磁盘故障或错误的升级。
这就是像 i2Backup 这样的专用 MySQL 数据库备份解决方案值得考虑的地方。它处理调度、存储和恢复过程,因此备份不依赖于有人记得运行脚本。
i2Backup 具有与本文介绍的 MySQL 部署相关的几个功能:
设置 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 处理这一方面,因此备份不依赖于有人记得运行脚本。
公告
邮件
销售