PmaControl logo PmaControl
  • 首页
  • PmaControl
    • AI智能代理 13个本地代理
    • 定价方案 Community、Cloud、On-Premise、Premium
    • 文档 指南、API、架构
    • 客户 28+企业
    • 常见问题 25个问题 / 7个类别
    数据库
    • MariaDB 30 篇文章
    • MySQL 10 篇文章
    • Galera Cluster 6 篇文章
    • MaxScale 3 篇文章
    • ProxySQL 2 篇文章
    • Amazon Aurora MySQL 0 篇文章
    • Azure Database 0 篇文章
    • ClickHouse 0 篇文章
    • GCP CloudSQL 0 篇文章
    • Percona Server 0 篇文章
    • SingleStore 0 篇文章
    • TiDB 0 篇文章
    • Vitess 0 篇文章
    解决方案
    • 全天候支持 MariaDB & MySQL紧急支持
    • Observabilité SQL 监控、告警、拓扑
    • Haute disponibilité 复制、故障转移、Galera
    • Disaster Recovery 备份、恢复、RPO/RTO
    • Sécurité & conformité 审计、GDPR、SOC2
    • Migration & upgrade 零停机、pt-osc、gh-ost
  • 定价方案
  • 资源
    • 文档 技术指南与API
    • 常见问题 25个常见问题
    • 客户评价 客户反馈与案例
    • 博客 文章与洞察
    • 路线图 即将推出的功能
    专业领域
    • Observabilité SQL 监控、告警、Dot3拓扑
    • Haute disponibilité 复制、故障转移、Galera
    • Sécurité & conformité 审计、GDPR、SOC2、ISO 27001
    • Disaster Recovery 备份、恢复、RPO/RTO
    • Performance & optimisation Digests、EXPLAIN、调优
    • Migration & upgrade 零停机、pt-osc
    快速链接
    • GitHub Wiki 26页 — 安装、引擎、插件
    • 源代码 GitHub官方仓库
    • 全天候支持 MariaDB & MySQL紧急支持
    • 预约演示 30分钟 — 真实架构
  • 全天候支持
  • 预约演示
预约演示
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← 返回博客

在 Debian 13 上安装 MySQL 8.4

发布于 2026年4月13日 作者 Aurélien LEQUOY
mysql debian installation mysql-8.4 debian-13
分享 X LinkedIn Facebook Email PDF
在 Debian 13 上安装 MySQL 8.4

目标

本文档从头到尾介绍如何使用官方 Oracle APT 方法在 Debian 13 上安装 MySQL 8.4,然后说明如何:

  • 验证 MySQL 是否正常运行
  • 加固实例安全
  • 调整基础配置
  • 根据需要迁移数据目录
  • 使用 systemd 管理服务

关于 Debian 13 的重要说明

截至 2026 年 4 月 13 日,MySQL APT 仓库已发布适用于 Debian 13 trixie 的软件包,包括 mysql-8.4-lts。

  • Debian 13 可以直接使用 Oracle MySQL 仓库
  • 推荐方法仍然是 MySQL APT 仓库
  • 如果目标是 Oracle MySQL 8.4,则无需使用 Debian 原生软件包

推荐架构

为了进行干净的安装:

  • 最小化 Debian 13 操作系统
  • 正确的主机名
  • 静态 IP
  • 一致的时区
  • 如果机器用于生产环境,应使用单独的数据磁盘

合理的最低配置:

组件 最低要求
vCPU 2
内存 4 GB
系统盘 20 GB
数据盘 50 GB+(独立数据目录)

1. 准备 Debian 13

apt-get update
apt-get -y upgrade
apt-get install -y \
  curl wget gnupg lsb-release ca-certificates \
  apt-transport-https net-tools dnsutils sudo

警告:software-properties-common 软件包在 Debian 13 上不存在(它是 Ubuntu 的软件包)。请勿包含它。

timedatectl set-timezone Europe/Paris
cat /etc/os-release

验证 VERSION_CODENAME=trixie。

2. 添加 Oracle MySQL APT 仓库

方案 A — 使用 mysql-apt-config(官方方法)

cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
dpkg -i mysql-apt-config_0.8.36-1_all.deb
apt-get update

方案 B — 手动 APT 文件(推荐)

重要提示:RPM-GPG-KEY-mysql-2023 GPG 密钥已于 2025 年 10 月过期。请使用 RPM-GPG-KEY-mysql-2025。

mkdir -p /etc/apt/keyrings
wget -O /etc/apt/keyrings/mysql.gpg https://repo.mysql.com/RPM-GPG-KEY-mysql-2025

cat >/etc/apt/sources.list.d/mysql.list <<'EOF'
deb [signed-by=/etc/apt/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian/ trixie mysql-8.4-lts mysql-tools
EOF

apt-get update

3. 安装 MySQL 8.4

DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server

这将安装服务端(mysql-community-server)、客户端(mysql-community-client)、插件和公共文件。

dpkg -l | grep -E 'mysql-(server|client|community)'

4. 验证服务

systemctl status mysql --no-pager
systemctl is-active mysql
systemctl is-enabled mysql
mysql --version
mysql -Nse "SELECT VERSION();"

5. 首次连接

使用 DEBIAN_FRONTEND=noninteractive,Debian 13 上的 MySQL 8.4 通过 Unix socket 配置 root 认证(无密码):

mysql

或:

sudo mysql

6. 加固实例安全

使用官方工具:

mysql_secure_installation

或手动操作:

DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;

7. 重要文件位置

文件 路径
配置文件 /etc/mysql/
服务端二进制文件 /usr/sbin/mysqld
客户端 /usr/bin/mysql
数据目录 /var/lib/mysql
systemd 服务 mysql.service
自定义配置 /etc/mysql/mysql.conf.d/zz-*.cnf

8. 推荐的基础配置

添加专用文件而非修改现有文件:

cat >/etc/mysql/mysql.conf.d/zz-custom.cnf <<'EOF'
[mysqld]
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
skip_name_resolve = ON
max_connections = 200
innodb_buffer_pool_size = 1G
log_error_verbosity = 2
EOF

systemctl restart mysql

验证:

mysql -Nse "SHOW VARIABLES LIKE 'bind_address';"
mysql -Nse "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"

9. 开放端口 3306

如果服务器需要接受远程连接:

CREATE USER 'admin'@'10.68.68.%' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'10.68.68.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ss -lntp | grep 3306

10. 将数据目录迁移到 /srv/mysql

systemctl stop mysql
mkdir -p /srv/mysql
rsync -aHAX /var/lib/mysql/ /srv/mysql/
chown -R mysql:mysql /srv/mysql
chmod 750 /srv/mysql

cat >/etc/mysql/mysql.conf.d/zz-datadir.cnf <<'EOF'
[mysqld]
datadir = /srv/mysql
EOF

systemctl start mysql
mysql -Nse "SELECT @@datadir;"

预期结果:/srv/mysql/

11. 启用 performance_schema

在 MySQL 8.4.8 上默认已启用:

mysql -Nse "SELECT @@performance_schema;"

如需手动启用:

cat >/etc/mysql/mysql.conf.d/zz-performance.cnf <<'EOF'
[mysqld]
performance_schema = ON
EOF

systemctl restart mysql

12. 创建专用管理员用户

避免在所有操作中使用 root:

CREATE USER 'dba'@'10.68.68.%' IDENTIFIED BY 'VeryStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'dba'@'10.68.68.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

13. 备份配置

tar czf /root/mysql-config-backup.tar.gz /etc/mysql
dpkg -l | grep mysql > /root/mysql-packages.txt

14. 常用操作命令

systemctl start mysql
systemctl stop mysql
systemctl restart mysql
journalctl -u mysql -n 100 --no-pager

15. 最终验证

systemctl is-active mysql
mysql --version
mysql -Nse "SELECT VERSION();"
mysql -Nse "SELECT @@datadir;"
mysql -Nse "SELECT @@performance_schema;"
ss -lntp | grep 3306

16. 常见陷阱

  1. 不要混合使用 MariaDB 和 Oracle MySQL — 二者选其一
  2. GPG 密钥过期 — RPM-GPG-KEY-mysql-2023 已过期 → 使用 RPM-GPG-KEY-mysql-2025
  3. software-properties-common 缺失 — 该包为 Ubuntu 专用,Debian 13 上不可用
  4. APT 源错误 — 使用 trixie,而非 bookworm
  5. 直接编辑 mysqld.cnf — 建议在 /etc/mysql/mysql.conf.d/ 中使用 zz-*.cnf 文件
  6. 未停止 MySQL 就迁移数据目录 — 务必先停止服务
  7. 不加过滤地暴露 3306 端口 — 限制主机,在防火墙层面进行过滤

精简流程

apt-get update && apt-get -y upgrade
apt-get install -y wget gnupg ca-certificates curl sudo

mkdir -p /etc/apt/keyrings
wget -O /etc/apt/keyrings/mysql.gpg https://repo.mysql.com/RPM-GPG-KEY-mysql-2025

cat >/etc/apt/sources.list.d/mysql.list <<'EOF'
deb [signed-by=/etc/apt/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian/ trixie mysql-8.4-lts mysql-tools
EOF

apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
systemctl enable --now mysql

mysql -e "DELETE FROM mysql.user WHERE User=''; DROP DATABASE IF EXISTS test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; FLUSH PRIVILEGES;"

测试安装结果

安装于 2026 年 4 月 13 日在 Proxmox 虚拟机上完成:

  • 虚拟机:VMID 115,mysql84-deb13,IP 10.68.68.190
  • 操作系统:Debian 13.4 (trixie),内核 6.12.74
  • MySQL:8.4.8 (MySQL Community Server - GPL)
  • 服务:已启动,开机自启
  • 配置:bind 0.0.0.0,skip_name_resolve ON,innodb_buffer_pool_size 1G,max_connections 200
  • performance_schema:已激活
  • 端口 3306:监听 0.0.0.0

结论

在 Debian 13 上,安装 MySQL 8.4 的正确方法是使用 Oracle MySQL APT 仓库。

与初始文档相比的修正:

  • GPG 密钥:RPM-GPG-KEY-mysql-2023 已过期 → 使用 RPM-GPG-KEY-mysql-2025
  • 依赖项:移除 software-properties-common(Debian 13 上不可用)
  • Root 连接:使用 DEBIAN_FRONTEND=noninteractive 时,root 通过 socket 连接,无需密码
  • performance_schema:在 MySQL 8.4.8 上默认已激活

官方参考文档

  • MySQL 8.4 — APT 安装
  • MySQL 8.4 — Oracle Debian 软件包
  • MySQL APT 仓库
  • APT trixie 仓库索引
分享 X LinkedIn Facebook Email PDF
← 返回博客

评论 (0)

暂无评论。

发表评论

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
法律声明 GitHub 联系我们
不要等到故障发生才了解您的架构。 © 2014-2026 PmaControl — 68Koncept