在阿里云轻量应用服务器(2核2GB内存)上安装 MySQL 8.0 是完全可行的,但需要注意内存资源有限,需合理配置以避免性能问题或服务崩溃。以下是详细的操作步骤:
✅ 一、准备工作
-
登录服务器
使用 SSH 登录你的轻量应用服务器:ssh root@your_server_ip -
更新系统包
sudo apt update && sudo apt upgrade -y
✅ 二、安装 MySQL 8.0
方法一:使用官方 APT 源(推荐)
-
下载并添加 MySQL APT 源
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb安装过程中会弹出配置界面,选择
MySQL Server & Cluster→ 选择mysql-8.0,然后确认 OK。 -
更新软件包列表
sudo apt update -
安装 MySQL 服务器
sudo apt install mysql-server -y -
启动并设置开机自启
sudo systemctl start mysql sudo systemctl enable mysql
✅ 三、安全初始化配置
运行安全脚本,设置 root 密码、移除匿名用户等:
sudo mysql_secure_installation
按提示操作:
- 设置强密码
- 移除匿名用户
- 禁止 root 远程登录(建议)
- 移除测试数据库
- 重新加载权限
⚠️ 注意:MySQL 8.0 默认使用
caching_sha2_password认证插件,部分旧客户端可能不兼容。如需兼容可手动修改(见下方说明)。
✅ 四、(可选)优化配置以适应 2GB 内存
默认配置对 2GB 内存偏高,建议调整 my.cnf 以减少内存占用。
编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
修改或添加以下内容:
[mysqld]
# 基础设置
port = 3306
bind-address = 127.0.0.1 # 仅本地访问,更安全
# 内存相关(关键!)
key_buffer_size = 16M
max_allowed_packet = 64M
thread_stack = 192K
thread_cache_size = 8
tmp_table_size = 32M
max_heap_table_size = 32M
# InnoDB 设置(重点)
innodb_buffer_pool_size = 512M # 建议:512M~1G,不要超过 1G
innodb_log_file_size = 128M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
# 连接数
max_connections = 100
💡 说明:
innodb_buffer_pool_size是最大内存占用项,建议设置为 512M~768M,保留内存给系统和其他进程。
保存后重启 MySQL:
sudo systemctl restart mysql
✅ 五、创建远程访问用户(可选)
如需从外部连接(如本地 Navicat):
-
登录 MySQL:
sudo mysql -u root -p -
创建用户并授权:
CREATE USER 'admin'@'%' IDENTIFIED BY 'YourStrongPassword'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES; -
修改绑定地址(如需远程访问):
编辑/etc/mysql/mysql.conf.d/mysqld.cnf,将:bind-address = 127.0.0.1改为:
bind-address = 0.0.0.0 -
务必在阿里云控制台 → 轻量应用服务器 → 防火墙中开放 3306 端口!
✅ 六、常见问题处理
1. 安装时报错或卡住?
- 检查网络是否正常,尝试更换 DNS(如
echo "nameserver 8.8.8.8" >> /etc/resolv.conf) - 清理缓存:
sudo apt clean && sudo apt autoclean
2. 启动失败?查看日志:
sudo journalctl -u mysql.service --no-pager -n 50
3. 认证插件不兼容?
如果客户端报错 Authentication plugin 'caching_sha2_password' cannot be loaded:
进入 MySQL 修改用户认证方式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
✅ 七、监控资源使用
定期检查内存使用情况:
free -h
top
避免 MySQL 占用过多内存导致 OOM。
✅ 总结
| 项目 | 建议 |
|---|---|
| 服务器配置 | 2核2GB,适合轻量级应用 |
| MySQL 版本 | 8.0(功能强,但需调优) |
| 内存优化 | innodb_buffer_pool_size=512M |
| 安全 | 开启防火墙、限制远程访问、强密码 |
| 备份 | 定期使用 mysqldump 备份数据 |
如有进一步需求(如部署 WordPress、配置主从复制等),可继续提问!
CDNK博客