在仅有 1GB 内存的服务器上部署 MySQL 时,应优先选择资源占用少、性能稳定且适合低配环境的版本。以下是综合建议:
✅ 推荐版本:MySQL 5.7 或 MariaDB 10.3~10.6
1. MySQL 5.7(推荐)
- 虽然已进入“退役支持”阶段(2023年停止官方支持),但依然广泛使用,稳定性高。
- 相比 MySQL 8.0,内存占用显著更低。
- 默认配置对小内存更友好。
- 更适合低配 VPS 和轻量级应用。
⚠️ 注意:生产环境若需长期维护,建议考虑替代方案或自行打补丁。
2. MariaDB 10.3 ~ 10.6(强烈推荐替代方案)
- MariaDB 是 MySQL 的一个分支,兼容性好,社区活跃。
- 内存占用比 MySQL 8.0 更低,性能优化更适合小内存环境。
- MariaDB 10.3/10.5 长期支持版本(LTS),适合稳定部署。
- 默认引擎和配置更适合 1GB 内存场景。
❌ 不推荐:MySQL 8.0+
- 内存占用高:默认 InnoDB 缓冲池等设置较高,即使空载也可能占用 500MB+ 内存。
- 在 1GB 内存机器上容易导致 OOM(内存溢出),尤其开启其他服务(如 Nginx、PHP)时。
- 初始化和启动较慢,在低配机器上体验差。
🔧 优化建议(无论选择哪个版本)
为节省资源,请务必调整配置文件(my.cnf 或 mysqld.cnf):
[mysqld]
# 减小缓冲区以节省内存
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 64K
read_buffer_size = 64K
join_buffer_size = 64K
tmp_table_size = 16M
max_heap_table_size = 16M
# 最关键:降低 InnoDB 缓冲池(默认可能几百MB)
innodb_buffer_pool_size = 128M # 建议 128M ~ 256M,留内存给系统和其他进程
innodb_log_file_size = 32M
innodb_flush_log_at_trx_commit = 2
# 禁用不必要的功能
skip-name-resolve
performance_schema = OFF
innodb_stats_on_metadata = OFF
# 限制连接数
max_connections = 50
🛠️ 部署建议
- 使用轻量级操作系统:如 Alpine Linux、Ubuntu Server LTS 最小安装。
- 关闭不需要的服务(如 IPv6、日志服务等)。
- 使用
htop或free -h监控内存使用情况。 - 考虑搭配轻量应用栈(如 Nginx + PHP-FPM + MySQL)。
✅ 总结推荐
| 方案 | 推荐指数 | 说明 |
|---|---|---|
| MariaDB 10.5/10.6 | ⭐⭐⭐⭐⭐ | 最佳选择:省资源、稳定、社区支持好 |
| MySQL 5.7 | ⭐⭐⭐⭐☆ | 可用,但注意安全更新缺失 |
| MySQL 8.0+ | ⭐⭐ | 不推荐,内存占用过高 |
📌 结论:
对于 1GB 内存服务器,推荐安装 MariaDB 10.5 或 10.6,并配合上述配置优化,可实现稳定、低资源运行。避免使用 MySQL 8.0+。
CLOUD技术笔记