总体结论
在CentOS上,MariaDB 属于系统默认或官方推荐的数据库选择,长期被广泛用于生产环境,整体稳定可靠。在CentOS 7上系统仓库默认提供 MariaDB;在CentOS 8上默认即为 MariaDB,且与 MySQL 高度兼容,命令与生态可直接沿用,迁移与运维成本较低。
版本与系统匹配建议
| 系统版本 |
默认数据库与版本 |
说明 |
| CentOS 7 |
MariaDB 5.5(系统仓库) |
可通过添加官方仓库升级至 10.x,社区实践表明如 10.4 等版本在社区与企业中运行稳定。 |
| CentOS 8 |
MariaDB 10.3(系统仓库) |
与 MySQL 生态高度兼容,适合直接承载 Web/应用服务。 |
| 上述默认版本与替代关系来自系统发行与主流教程的共识性实践。 |
|
|
稳定运行的关键实践
- 安装与基础加固:使用系统或官方仓库安装,执行 mysql_secure_installation 完成 root 密码、匿名用户、远程 root、测试库等安全项设置,减少攻击面。
- 资源配置优化:结合内存与工作负载调整关键参数,例如 innodb_buffer_pool_size、innodb_log_file_size,并合理控制连接与会话,避免资源争用。
- 备份与恢复:定期使用 mysqldump 做逻辑备份,必要时采用热备/导出导入方案,确保可快速回滚与迁移。
- 主从复制与高可用:上线主从复制实现故障切换与读写分离;在需要自动故障转移的场景,可引入 MHA 等工具提升可用性。
升级与兼容性注意
跨小版本/大版本升级前务必全量备份,升级后执行 mysql_upgrade 以更新系统表结构;从 MariaDB 10.3 升级到 10.4 等版本在生产中已有较多成功案例,但不同业务差异仍需在测试环境验证。
常见稳定性风险与规避
- 防火墙与 SELinux:未放行 3306 或 SELinux 策略不当会导致“服务已启动但无法连接/访问被拒”,需正确配置 firewalld 与 SELinux 上下文,而非简单粗暴地关闭安全组件。
- 大页/透明大页与 NUMA:未正确配置可能导致性能抖动或稳定性问题;建议结合工作负载评估并配置 HugePages/THP,必要时使用 numactl 绑定内存与 CPU,减少跨 NUMA 访问带来的延迟波动。