在阿里云轻量应用服务器(Simple Application Server, SAS)上部署 MySQL,主要有两种推荐方式:使用镜像一键部署(最简单、适合新手)和 手动安装配置(适合需要自定义版本或深度定制的场景)。
以下是具体的操作步骤:
方法一:使用“数据库”镜像一键部署(推荐)
这是最快的方式,阿里云官方提供了预装好 MySQL 的镜像,系统会自动完成环境配置。
-
创建实例时选择镜像
- 登录阿里云控制台,进入【轻量应用服务器】页面。
- 点击“创建实例”。
- 在镜像选择环节,不要选默认的“公共镜像”,而是切换到应用镜像标签页。
- 在左侧分类中选择 “数据库”,然后找到 "MySQL" 相关的镜像(如
MySQL 8.0或MySQL 5.7)。 - 点击该镜像进行创建。
-
设置密码与配置
- 在创建向导中,你需要设置 root 用户密码(请务必记牢,后续连接必须用到)。
- 根据需求选择实例规格(CPU/内存/带宽),注意:轻量服务器的内存通常较小(如 2G/4G),如果数据量大,建议适当增加内存以避免 OOM(内存溢出)。
-
验证部署
- 实例创建完成后,进入实例详情页。
- 点击顶部的 “远程连接” -> “终端”。
- 输入命令
mysql -u root -p,输入刚才设置的密码。 - 如果能成功进入
mysql>提示符,说明部署成功。
优点:无需手动安装依赖,自动配置防火墙规则,开箱即用。
缺点:无法在安装过程中选择非常特殊的版本组合,且默认配置可能不是最优化的生产环境配置。
方法二:手动安装 MySQL(灵活度高)
如果你已经创建了 Linux 实例(如 Ubuntu 或 CentOS),或者需要特定版本的 MySQL,可以使用此方法。
1. 更新系统并安装依赖
以 Ubuntu 22.04 为例(CentOS 命令略有不同,见下文备注):
sudo apt update
sudo apt upgrade -y
sudo apt install mysql-server -y
如果是 CentOS 7/8,需先安装 EPEL 源或使用 yum/dnf 安装:
# CentOS 示例
sudo yum install mysql-server -y
# 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
2. 安全初始化
安装后,MySQL 初始状态可能未开启安全选项。运行安全脚本:
sudo mysql_secure_installation
按提示操作:
- 询问是否启用 VALIDATE PASSWORD COMPONENT?(选 N)
- 设置 root 密码。
- 移除匿名用户、禁止 root 远程登录、删除测试数据库等(全部选 Y)。
3. 配置允许远程连接(关键步骤)
默认情况下,MySQL 只允许本地访问。如果你需要从外部(如你的电脑上的 Navicat/DBeaver)连接,需执行以下操作:
-
登录 MySQL:
sudo mysql -u root -p -
修改 root 用户允许从任何 IP 连接(或者指定具体 IP):
-- 进入 mysql 命令行后执行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码'; FLUSH PRIVILEGES; -- 如果需要允许所有 IP 连接(注意安全风险,生产环境建议限制 IP) CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的新密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;注:MySQL 8.0+ 默认认证插件是
caching_sha2_password,某些旧版客户端可能不支持,上述mysql_native_password兼容性更好。 -
退出 MySQL:
exit;
4. 配置防火墙与安全组
这是最容易出错的一步,必须放行 3306 端口。
-
阿里云控制台(安全组):
- 进入轻量应用服务器详情页 -> 网络 -> 安全组。
- 点击“配置规则” -> “添加入方向规则”。
- 协议类型:TCP,端口范围:
3306,授权对象:0.0.0.0/0(生产环境建议填你公司的公网 IP 或特定 IP 段)。 - 保存规则。
-
服务器内部防火墙(可选但推荐):
- Ubuntu:
sudo ufw allow 3306/tcp - CentOS:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent && sudo firewall-cmd --reload
- Ubuntu:
⚠️ 重要注意事项
-
公网直连风险:
将 MySQL 直接暴露在公网(0.0.0.0/0)存在极大的安全风险(容易被爆破)。- 最佳实践:仅允许你个人的办公 IP 访问,或者通过 SSH 隧道 连接。
- SSH 隧道连接法:在本地终端使用
ssh -L 3306:localhost:3306 root@<服务器IP>建立隧道,然后在本地连接localhost:3306,这样不需要开放 3306 端口到公网。
-
资源限制:
轻量应用服务器的内存通常有限(如 2GB)。如果数据库较大,建议在/etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu) 或/etc/my.cnf(CentOS) 中调整innodb_buffer_pool_size(建议设置为物理内存的 50%-70%),防止频繁 Swap 导致性能下降。 -
备份:
轻量应用服务器本身没有内置自动快照外的数据库备份策略。建议定期使用mysqldump导出 SQL 文件,并上传到 OSS 存储桶,以防数据丢失。
总结
- 新手/快速搭建:直接选 MySQL 应用镜像 创建实例。
- 老手/定制需求:手动安装 + 安全组配置 + SSH 隧道连接。
CLOUD云枢