MySQL 在 Linux 环境下的安装部署,说难不难,但坑确实不少。这些年我带过不少新人,很多人第一步就卡在不知道选哪种安装方式,第二步又卡在初始化报错上。这篇东西我不打算给你念文档,就按真实部署时走过的路,把 Linux 下装 MySQL 的几种常见方式、完整操作步骤、过程中最容易踩的坑一起捋一遍。适合刚接触 Linux 运维的开发者,也适合准备把 MySQL 迁移到 Linux 服务器上的同学,照着做基本能少走很多弯路。
1. 安装前的准备工作与整体思路
1.1 为什么生产环境普遍把 MySQL 跑在 Linux 上
MySQL 作为开源关系型数据库,最舒适的运行环境就是 Linux。这不是什么玄学,而是由生态决定的:绝大多数自动化运维脚本、监控工具、高可用方案都是优先适配 Linux 的,而且 Linux 系统本身对资源的管理和隔离做得比 Windows 干净,跑数据库实例更稳定。你去看各大云厂商提供的 MySQL 云产品,底层也基本都是 Linux。
部署之前先想清楚一个核心问题:你的机器拿来干什么?如果只是本地开发验证,装个最简单的 yum 包就够了;如果要搭测试环境或者模拟生产,那需要认真规划目录、配置、开机自启这些细节;如果是生产环境,那还得考虑防火墙、权限、备份策略。不同的目标对应不同的安装路径,一上来就闷头敲命令,后面大概率要返工。
另一个容易被忽略的点:服务器上是不是已经装了 MariaDB。很多 Linux 发行版默认自带 MariaDB,如果你直接 yum install mysql,装出来的可能是 MariaDB 的客户端,而不是真正的 MySQL。这一点不提前确认,后面有的折腾。
1.2 安装前的系统检查三件事
正式动手前,先用几条命令摸清系统情况。
bash复制# 查看操作系统发行版和内核版本
cat /etc/os-release
uname -r
# 查看内存和磁盘剩余空间
free -h
df -h
# 检查是否已安装 MySQL 或 MariaDB
rpm -qa | grep -Ei "mysql|mariadb"
这几条命令看起来简单,但每一步都可能帮你提前发现问题。比如 free -h 如果显示内存只有 1G,那后面 innodb_buffer_pool_size 就不能按默认推荐值设置,否则实例可能起不来;df -h 如果发现数据目录所在分区空间不足,后面初始化就会直接失败。检查完是否存在历史安装记录,如果有残留,先做好备份再卸载,别直接手滑把数据清了。
还要强调一句:安装前先想好数据目录放哪。很多人图省事全部用默认路径,等数据量上来才发现系统盘不够用,迁移数据又是一顿折腾。你哪怕只是自己玩玩,也建议把数据目录和系统目录分开规划。
1.3 MySQL 5.7 与 8.0 怎么选
眼下新部署的实例,我建议直接选 MySQL 8.0。官方已经从 2023 年开始把 MySQL 5.7 列入了 EOL 计划,不再提供新功能更新,安全补丁的维护也越来越少。8.0 在性能、JSON 支持、窗口函数、安全策略方面都强了不少。
如果你是老项目从 5.7 往 8.0 迁,需要特别关注两个差异点。第一是默认认证插件:5.7 用 mysql_native_password,8.0 默认换成了 caching_sha2_password,老版本客户端连不上时会有明显的协议报错,这时候要么升级客户端,要么在创建用户时显式指定认证插件。第二是部分语法行为变了,比如隐式转换规则和窗口函数的使用,升级前最好先跑一遍业务核心 SQL 的回归测试。
如果你确实因为依赖原因必须用 5.7,也不是不行,但要注意下载源和依赖包和 8.0 不太一样,别照着 8.0 的教程一路抄下来。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 主流的安装方式对比与选型
2.1 包管理器直接安装:最快但可控性较低
在 CentOS 或者 RHEL 上,最简单的安装方式就是先装 MySQL 官方 yum 源,再直接安装:
bash复制# 安装官方 yum 仓库
rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm
# 安装服务端
yum install -y mysql-community-server
# 启动
systemctl start mysqld
Debian/Ubuntu 对应用 apt 方式安装,逻辑一样。这种方式的优势是快、依赖自动解决、升级方便,后续直接 yum update 就能拿到安全更新。缺点是文
