首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 8 on Debian 12:高性能数据库安装与配置实践演示

MySQL 8 on Debian 12:高性能数据库安装与配置实践演示

作者头像
一根头发丝的宽度
发布2026-05-06 19:21:25
发布2026-05-06 19:21:25
1990
举报

本文提供了一个分步教程,演示如何在 Debian 12 上安装 MySQL 8。MySQL 是一个快速、稳定且真正的多用户、多线程 SQL 数据库服务器,其主要目标是速度、可靠性和易用性。要查看 MySQL 8 提供的功能的全面描述,请访问 Mysql 8参考文档(https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html)。

安装Mysql 8

Debian 12 的默认软件仓库中没有 MySQL 8。

代码语言:javascript
复制
sudo apt show mysql-server
1. 安装 Mysql 8 APT 仓库

安装 MySQL 8 的推荐方法是通过 MySQL APT 仓库;因此,需要在 Debian 12 上安装 MySQL APT 仓库。

下载 MySQL 8 APT 仓库安装程序:

代码语言:javascript
复制
wget https://repo.mysql.com//mysql-apt-config_0.8.34-1_all.deb

提示:也可以在官网下载仓库的安装包上传到服务器内。访问“https://www.mysql.com/downloads/” -> 点击中间行底部的“MySQL Community (GPL) Downloads »” -> 选择仓库类型,这里为“MySQL APT Repository”->点击“Download”

安装仓库:

代码语言:javascript
复制
apt install ./mysql-apt-config_0.8.34-1_all.deb -y

运行上诉命令后将会出现如下界面,选择 “Ok” 并按下 TAB 键以选择“”。按下回车键以继续安装仓库。。。

如果再次提示选择产品,请按上述步骤操作,然后按 ENTER 键完成 MySQL APT 资源库的安装。

2. 执行系统更新

在继续操作之前,请先使用命令apt update更新并升级系统软件包。

通过执行以下命令安装 MySQL 8:

代码语言:javascript
复制
apt install mysql-server -y

在安装过程中,系统会提示设置 MySQL 8 root 密码:

输入两次 root 密码后系统将自动安装完成。

3. 运行 Mysql 8

安装完成后,MySQL 8 将立即启动并加入开机启动,以便在系统启动时运行;

代码语言:javascript
复制
systemctl status mysql
systemctl is-enabled mysql

也可以使用以下命令停止/启动/重启;

代码语言:javascript
复制
systemctl start mysql # 启动
systemctl stop mysql # 停止
systemctl restart mysql # 重启
4. 配置安全加固

MySQL 附带一个名为 mysql_secure_installation 的安全脚本,可帮助以以下方式实现 MySQL 安装的初始安全设置:

  • 可以为 root 账户设置密码。
  • 可以删除可从本地主机外部访问的 root 账户。
  • 可以删除匿名用户账户。
  • 可以删除测试数据库(默认情况下,所有用户,甚至匿名用户均可访问该数据库),以及允许任何人访问以 test_ 开头的数据库的权限。

该脚本可通过以下方式简单执行:

代码语言:javascript
复制
mysql_secure_installation

运行时,输入 root 密码后,脚本会提示您是否要执行密码复杂性检查。 接受,选择密码强度;:

接下来,跳过或者设置根密码并接受其他提示,以删除匿名数据库用户、禁止远程 root 登录、删除测试数据库并重新加载权限表,以在 MySQL 中生效这些更改。

5. 登陆 Mysql 8

使用之前设置的密码,以 root 用户身份连接 MySQL 8。

代码语言:javascript
复制
mysql -uroot -p

登录到 MySQL 后,开头将显示连接ID以及版本号,此外还可以通过执行以下命令来查看版本:

代码语言:javascript
复制
mysql> SHOW VARIABLES LIKE "%version%";
6. 开启远程访问

默认限制:MySQL 8 默认仅允许本地连接(127.0.0.1),需手动配置远程访问权限。

步骤 1: 创建用户

登录 MySQL 并执行:

代码语言:javascript
复制
-- 创建专用远程用户(非root)
CREATE USER 'oneh'@'%' IDENTIFIED BY 'StrongPassword123!';

-- 查看用户表
use mysql;
SELECT host,user,authentication_string,plugin FROM user;

💡 安全建议:将 % 替换为具体客户端IP(如 '192.168.1.%'

步骤2: 授予远程登陆权限
代码语言:javascript
复制
-- 授予所有数据库权限(按需缩小范围)
GRANT ALL PRIVILEGES ON *.* TO 'oneh'@'%' WITH GRANT OPTION;
步骤 3: 刷新用户权限
代码语言:javascript
复制
flush privileges;
步骤 4: 远程连接测试

从 MySQL 8 开始,MySQL 默认使用了新的身份验证插件 caching_sha2_password,取代了之前的 mysql_native_passwordcaching_sha2_password 是一种更安全的身份验证方式,它使用了SHA-256 散列算法,并支持公钥/私钥加密机制。

连接过程中可能会出现类似报错“UnableToConnectException: Public Key Retrieval is not allowed”。解决办法之一就是修改连接用户的加密规则,之二就是在连接时指定 allowPublicKeyRetrieval=true 参数。下面截图使用的是 dbeaver 修改参数后的测试:


7. 后续关键操作建议

定期备份策略

代码语言:javascript
复制
# 每日全量备份
mysqldump -u root -p --all-databases > /backups/mysql-full-$(date +%F).sql

性能优化配置

代码语言:javascript
复制
# /etc/mysql/my.cnf
[mysqld]
innodb_buffer_pool_size = 2G   # 分配70%可用内存
max_connections = 500           # 根据业务调整

监控与警报

代码语言:javascript
复制
# 安装监控工具
apt install mytop mysql-utilities
8. 生产环境安全清单

风险点

加固方案

默认root远程访问

禁用远程root,使用专用账户

弱密码策略

启用validate_password组件

未加密远程连接

强制SSL:REQUIRE SSL

3306端口公网暴露

防火墙白名单 + VPN访问限制

⚠️ 终极提醒

  • 定期审计用户权限:SHOW GRANTS FOR 'user'@'host'
  • 灾难恢复演练:每季度测试备份恢复流程

恭喜! 您已成功构建企业级MySQL数据库环境,现在可安全部署应用程序。如需深度优化方案,请参考 MySQL 8 Performance Tuning Guide(https://dev.mysql.com/doc/refman/8.0/en/optimization.html)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一根头发丝的宽度 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Mysql 8
    • 1. 安装 Mysql 8 APT 仓库
    • 2. 执行系统更新
    • 3. 运行 Mysql 8
    • 4. 配置安全加固
    • 5. 登陆 Mysql 8
    • 6. 开启远程访问
      • 步骤 1: 创建用户
      • 步骤2: 授予远程登陆权限
      • 步骤 3: 刷新用户权限
      • 步骤 4: 远程连接测试
    • 7. 后续关键操作建议
    • 8. 生产环境安全清单
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档