在阿里云 ECS(Elastic Compute Service)上搭建数据库是一种常见做法,适用于中小型应用或开发测试环境。以下是详细的步骤和建议,帮助你在阿里云 ECS 上搭建数据库(以 MySQL 为例):
✅ 一、准备工作
-
购买并配置 ECS 实例
- 登录 阿里云控制台
- 创建一台 ECS 实例(建议选择 CentOS 7+/Ubuntu 20.04+ 等主流 Linux 发行版)
- 选择合适的配置(数据库对内存和磁盘 I/O 要求较高,建议至少 2核4G,云盘选择 SSD)
- 设置安全组规则:
- 开放 SSH(22端口)
- 开放数据库端口(如 MySQL 默认 3306),建议不要对公网开放 3306,可通过内网访问或使用跳板机 + 安全组限制 IP
-
远程连接 ECS
- 使用 SSH 工具(如 Xshell、PuTTY、或阿里云 Web Terminal)连接到你的 ECS 实例
✅ 二、安装数据库(以 MySQL 8.0 为例)
1. 更新系统包
# CentOS/RHEL
sudo yum update -y
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
2. 安装 MySQL
CentOS 7/8 安装 MySQL 8.0
# 添加 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
Ubuntu 安装 MySQL 8.0
sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql
✅ 三、初始化数据库安全设置
运行安全脚本(设置 root 密码、移除匿名用户等):
sudo mysql_secure_installation
按提示操作:
- 设置 root 用户密码
- 移除匿名用户
- 禁止 root 远程登录(建议)
- 移除 test 数据库
- 重新加载权限
✅ 四、配置远程访问(可选,谨慎操作)
⚠️ 建议仅在必要时开启远程访问,并限制 IP。
-
修改 MySQL 配置文件
sudo vim /etc/my.cnf # CentOS # 或 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu找到
bind-address修改为:bind-address = 0.0.0.0注意:开放 0.0.0.0 有安全风险,建议结合安全组限制访问 IP。
-
创建远程访问用户
mysql -u root -p在 MySQL 中执行:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT; -
重启 MySQL
sudo systemctl restart mysqld # 或 sudo systemctl restart mysql
✅ 五、配置安全组(阿里云控制台)
- 进入 ECS 控制台 → 实例 → 安全组 → 配置规则
- 添加入方向规则:
- 授权类型:自定义
- 协议类型:TCP
- 端口范围:3306
- 授权对象:建议填写你的公网 IP(如
123.123.123.123/32),不要填 0.0.0.0/0
✅ 六、连接数据库测试
使用客户端工具(如 Navicat、DBeaver、MySQL Workbench)或命令行测试连接:
mysql -h <ECS公网IP> -u remote_user -p
✅ 七、优化与建议
| 项目 | 建议 |
|---|---|
| 数据安全 | 定期备份(可使用 mysqldump 或 XtraBackup) |
| 性能 | 使用 SSD 云盘,适当配置 innodb_buffer_pool_size |
| 高可用 | 生产环境建议使用 阿里云 RDS(更稳定、自动备份、监控) |
| 监控 | 安装 mysqltuner.pl 或使用阿里云云监控 |
| 日志 | 开启慢查询日志,便于优化 |
❌ 不推荐在 ECS 自建数据库的场景
- 高并发生产环境
- 对数据一致性、高可用要求高
- 缺乏 DBA 维护能力
✅ 推荐使用 阿里云 RDS for MySQL:自动备份、故障迁移、监控报警、一键扩容。
✅ 参考文档
- 阿里云 ECS 文档:https://help.aliyun.com/product/25365.html
- MySQL 官方安装指南:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum.html
如需搭建其他数据库(如 PostgreSQL、Redis、MongoDB),也可提供具体需求,我可以给出对应方案。
是否需要我提供一键安装脚本?
PHPWP博客