在1核1G内存的服务器上安装 MySQL 是完全可行的,但需要注意资源限制。这类配置适合轻量级应用、测试环境或低并发的小型网站。以下是详细的安装和优化建议。
✅ 一、选择合适的 MySQL 版本
推荐使用 MySQL 5.7 或 8.0 的轻量版本,也可以考虑替代品如 MariaDB(更节省资源)。
✅ 二、安装方式选择
方式一:使用系统包管理器安装(推荐)
适用于 CentOS、Ubuntu 等 Linux 发行版。
Ubuntu 安装示例:
# 更新软件包列表
sudo apt update
# 安装 MySQL 服务器
sudo apt install mysql-server -y
# 启动 MySQL 服务
sudo systemctl start mysql
# 设置开机自启
sudo systemctl enable mysql
# 运行安全初始化脚本(设置 root 密码等)
sudo mysql_secure_installation
CentOS 安装示例:
# 安装 MySQL Yum 源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
# 安装 MySQL 服务器
sudo yum install mysql-server -y
# 启动服务并设置开机启动
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 获取临时 root 密码(用于首次登录)
sudo grep 'temporary password' /var/log/mysqld.log
# 运行安全初始化脚本
sudo mysql_secure_installation
✅ 三、优化 MySQL 配置(关键!)
默认配置会占用较多资源,必须进行调优以适应 1 核 1G 的环境。
编辑配置文件:
sudo nano /etc/mysql/my.cnf
添加或修改以下内容:
[mysqld]
# 基础优化
innodb_buffer_pool_size = 128M
key_buffer_size = 32M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
read_buffer_size = 256K
thread_stack = 192K
thread_cache_size = 4
query_cache_type = 0
query_cache_size = 0
# 减少连接数
max_connections = 30
wait_timeout = 600
interactive_timeout = 600
# 日志相关(可选关闭)
log_error = /var/log/mysql/error.log
slow_query_log = 0
保存后重启 MySQL:
sudo systemctl restart mysql
✅ 四、监控与维护
1. 查看内存使用情况:
free -h
top
2. 查看 MySQL 内存占用:
SHOW STATUS LIKE 'Threads_connected';
SHOW ENGINE INNODB STATUSG
3. 使用 htop、iotop 等工具辅助监控。
✅ 五、常见问题及解决方法
| 问题 | 解决方法 |
|---|---|
| 内存不足导致 MySQL 崩溃 | 调整 innodb_buffer_pool_size 到 64M~128M |
| 启动失败 | 检查 /var/log/mysql/error.log 日志 |
| 连接超时频繁 | 增加 wait_timeout,减少 max_connections |
| 性能慢 | 关闭查询缓存、优化 SQL 查询 |
✅ 六、其他轻量数据库推荐(备选)
如果对性能要求不高,可以考虑:
- SQLite(无需服务,嵌入式)
- MariaDB(兼容 MySQL,更轻量)
- PostgreSQL(功能强大,但略重)
✅ 七、总结
| 项目 | 推荐值 |
|---|---|
| innodb_buffer_pool_size | 64M – 128M |
| max_connections | 20 – 50 |
| key_buffer_size | 32M |
| 是否开启查询缓存 | 否 |
| 数据库类型 | 小型网站、开发测试环境 |
如果你告诉我你使用的操作系统(比如 Ubuntu 20.04、CentOS 7 等),我可以提供更具体的安装脚本和配置文件模板。
是否需要我帮你写一个一键安装脚本?
秒懂云