阿里云轻量应用服务器(Lightweight Application Server)默认不支持直接通过公网远程连接 MySQL,这是出于安全考虑。
默认情况下,轻量服务器的防火墙和安全组策略会禁止外部访问 3306 端口。要实现远程连接,你需要手动完成以下两个关键步骤:
1. 配置安全组规则
这是最关键的一步。你需要登录阿里云控制台,找到你的轻量应用服务器实例,进入“网络”或“安全组”设置页面:
- 添加入方向规则:新建一条规则,允许
TCP协议,端口范围填写3306,授权对象(源 IP)设置为:0.0.0.0/0(允许所有 IP 访问,风险较高,仅用于测试或内网环境)。- 或者指定具体的 IP 地址(如你公司的办公 IP),这样更安全。
2. 配置 MySQL 用户权限
即使放行了端口,MySQL 数据库本身也需要允许远程用户登录。你需要登录到服务器内部执行以下操作:
- 登录 MySQL:
mysql -u root -p - 修改 root 用户或创建新用户,允许从任意主机(%)或特定 IP 连接:
-- 允许 root 用户从任何 IP 连接(注意:生产环境建议限制具体 IP) ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; CREATE USER 'remote_user'@'%' IDENTIFIED BY '你的强密码'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%'; FLUSH PRIVILEGES;注意:高版本 MySQL (8.0+) 默认使用
caching_sha2_password插件,部分旧版客户端可能无法连接,可能需要切换为mysql_native_password或更新客户端驱动。
⚠️ 重要安全提示
由于轻量服务器通常没有像 ECS 那样复杂的 VPC 隔离,直接开放 3306 端口到公网存在被暴力破解或勒索病毒攻击的高风险。建议采取以下措施:
- 最小化授权:在安全组中只开放你当前电脑的 IP,而不是
0.0.0.0/0。 - 使用 SSH 隧道:推荐通过 SSH 端口转发(Tunneling)来连接,不直接暴露 3306 端口。
- 命令示例:
ssh -L 3307:localhost:3306 user@your-server-ip - 然后在本地客户端连接
localhost:3307。
- 命令示例:
- 开启白名单:如果业务需要,尽量绑定特定的云产品 IP 段。
结论:支持远程连接,但必须手动配置安全组放行 3306 端口并调整 MySQL 用户权限,同时务必做好安全防护。
云服务器