在 1核1G(1核CPU,1GB内存)的服务器上安装 MySQL 是可行的,但需要注意资源限制。虽然这种配置对于生产环境来说非常有限,但在开发、测试或轻量级用途下还是可以运行的。
下面是一个适用于 CentOS 或 Ubuntu 系统的安装指南:
✅ 一、选择合适的 MySQL 版本
推荐使用较轻量的版本,比如:
- MySQL 5.7:相对稳定,资源占用比8.0低。
- MariaDB:作为 MySQL 的替代品,性能更好、资源更节省。
✅ 二、安装步骤(以 CentOS 7/8 为例)
1. 更新系统
sudo yum update -y
2. 添加 MySQL 官方 YUM 仓库(以 MySQL 5.7 为例)
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
然后编辑 /etc/yum.repos.d/mysql-community.repo 文件,将 mysql80-community 改为禁用,启用 mysql57-community。
或者直接使用命令切换:
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
3. 安装 MySQL 服务器
sudo yum install mysql-community-server -y
4. 启动 MySQL 并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
5. 获取初始密码并登录
MySQL 安装完成后会生成一个默认密码:
grep 'temporary password' /var/log/mysqld.log
登录 MySQL:
mysql -u root -p
修改密码(必须符合复杂度要求):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!';
✅ 三、优化 MySQL 配置(重点!)
编辑 MySQL 配置文件(通常是 /etc/my.cnf 或 /etc/mysql/my.cnf)添加或修改以下内容:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
# 性能优化
key_buffer_size = 8M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 4K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
# 减少连接数
max_connections = 30
wait_timeout = 60
interactive_timeout = 60
# 禁用 InnoDB(如果不需要事务支持)
skip-innodb
default-storage-engine = MyISAM
⚠️ 注意:如果你需要事务支持,请不要禁用 InnoDB,但要适当调小缓冲池大小(如
innodb_buffer_pool_size = 16M)。
保存后重启 MySQL:
sudo systemctl restart mysqld
✅ 四、常见问题处理
1. 内存不足导致启动失败
- 检查日志:
/var/log/mysqld.log - 调整
my.cnf中的缓存和连接数参数
2. 数据库响应慢
- 使用
SHOW PROCESSLIST;查看是否有阻塞操作 - 避免执行大数据量查询
✅ 五、建议用途
- 开发测试环境
- 单用户博客、小型网站
- API 后端 + 少量数据存储
✅ 六、可选方案:使用 MariaDB 替代
MariaDB 更轻量,兼容性好,更适合低配服务器:
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo mysql_secure_installation
MariaDB 默认不启用 InnoDB,对内存压力更小。
✅ 七、监控资源使用情况
你可以使用以下命令查看内存和 CPU 使用情况:
top
free -m
htop # 可安装 htop 工具查看更直观
✅ 总结
| 项目 | 推荐值 |
|---|---|
| MySQL 版本 | 5.7 |
| 存储引擎 | MyISAM(非事务) |
| 最大连接数 | ≤30 |
| 缓冲池大小 | ≤16MB |
| 是否适合生产? | 不适合高并发场景 |
如果你有具体的应用场景(例如搭建 WordPress、Node.js 后端等),我也可以提供更针对性的优化建议!
是否需要我为你写一个完整的自动化脚本?
CDNK博客