CentOS 上 MySQL 版本选择指南
一、选择思路与优先级
- 明确需求与约束:优先考虑应用对功能(如 JSON/窗口函数)、性能、安全与合规的要求,以及团队熟悉度与维护能力。
- 优先选择**长期支持(LTS)**版本:在 CentOS 上,生产环境常用 MySQL 5.7(LTS)与MySQL 8.0(LTS);新项目更推荐 8.0,既有性能与安全增强,也便于后续演进。
- 关注与 CentOS 版本及生态的兼容性:如 CentOS 7/8 均可部署 5.7/8.0;若追求系统自带生态与维护一致性,可考虑 MariaDB 作为替代分支。
二、版本对比与适用场景
| 版本 |
关键特性 |
典型场景 |
注意事项 |
| MySQL 5.7 |
稳定成熟、生态广泛、兼容性强 |
既有业务、对变更敏感的系统 |
功能与性能不及 8.0,长期看建议规划升级 |
| MySQL 8.0 |
性能与优化器改进、增强的JSON/索引、窗口函数、更强的安全性 |
新项目、需要更高性能与可维护性的场景 |
升级需做兼容性评估与必要改造 |
| MariaDB |
MySQL 分支、与 MySQL 使用相似、生态兼容 |
希望与系统仓库保持一致或倾向 MariaDB 的场景 |
与 MySQL 细微差异需验证,遵循应用兼容清单 |
说明:8.0 相比 5.7 在JSON 支持(含索引)、窗口函数、性能与安全方面有明显增强;5.7 以稳定著称,适合存量系统延续使用。
三、按 CentOS 版本与场景的推荐
| 场景 |
推荐版本 |
说明 |
| CentOS 7 新部署 |
MySQL 8.0 |
性能与安全增强,便于长期演进;若依赖限制,可选 5.7 |
| CentOS 8 新部署 |
MySQL 8.0 |
与系统生态匹配度高,主流稳定选择 |
| 存量系统迁移/升级 |
5.7 → 8.0 |
先评估兼容性(SQL/数据类型/特性)、备份与回滚方案,再执行升级 |
| 强调与系统仓库一致 |
MariaDB |
与 CentOS 生态贴合,但需验证应用兼容性 |
要点:CentOS 7/8 均支持 5.7/8.0;新部署优先 8.0;若需与系统仓库保持一致或倾向 MariaDB,可评估后采用。
四、快速决策清单
- 应用是否依赖 JSON 索引/窗口函数 等新特性 → 需要则选 8.0。
- 是否有严格的合规/审计要求 → 选 8.0(安全与可运维性更强)。
- 是否为存量系统且变更成本高 → 可暂用 5.7,并制定升级路线。
- 是否希望与系统仓库保持一致 → 评估 MariaDB 的兼容性后决定。
- 团队对 5.7/8.0 的熟悉度与运维能力 → 选择团队更可控的版本。
五、安装与升级提示
- 使用 MySQL 官方 Yum 仓库进行安装,便于获取稳定版本与更新;安装后启动服务并设置开机自启:
sudo yum install mysql-community-server -y
sudo systemctl start mysqld && sudo systemctl enable mysqld
- 首次登录使用日志中的临时密码并立即修改:
sudo grep ‘temporary password’ /var/log/mysqld.log
mysql -u root -p
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘YourStrongP@ssw0rd’;
- 运行安全配置向导:
sudo mysql_secure_installation
- 升级(如 5.7 → 8.0)前务必:全量备份(数据与配置)、检查兼容性、在测试环境验证、规划回滚;使用 yum 执行升级并逐步验证业务。