速卖通素材
努力

阿里云轻量服务器是否支持远程mysql?

服务器

阿里云轻量应用服务器(Simple Application Server)默认不支持直接通过公网 IP 远程连接 MySQL 数据库。

这是出于安全考虑,轻量服务器的防火墙规则在初始化时通常只开放了 Web(80/443)、SSH(22)等基础端口,而数据库端口(如 3306)默认是关闭的。要实现远程访问,你需要手动配置网络和安全策略。

以下是实现远程连接的具体步骤和注意事项:

1. 修改安全组规则

这是最关键的一步。你需要登录阿里云控制台,找到该轻量服务器的安全组设置:

  • 入方向规则:添加一条新规则。
    • 协议类型:TCP
    • 端口范围3306(如果你使用的是非标准端口,请填写实际端口)
    • 授权对象
    • 如果希望允许所有 IP访问(不推荐用于生产环境),填写 0.0.0.0/0
    • 如果希望仅允许特定 IP访问(推荐),填写你本地电脑的公网 IP 地址或公司办公网段。
  • 生效时间:立即生效。

2. 配置 MySQL 用户权限

仅仅开放防火墙是不够的,MySQL 服务端本身也需要允许远程连接:

  • 登录到轻量服务器内部(通过 SSH)。
  • 进入 MySQL 命令行:mysql -u root -p
  • 执行以下 SQL 语句,将 your_password 替换为你的密码,your_ip 替换为允许访问的客户端 IP(或者使用 % 允许所有,但同样存在安全风险):

    -- 查看当前用户权限
    SELECT user, host FROM mysql.user;
    
    -- 创建或修改用户,允许从任意 IP 连接 (示例)
    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'strong_password';
    
    -- 或者修改 root 用户 (不推荐直接暴露 root)
    UPDATE mysql.user SET host='%' WHERE user='root';
    
    -- 授权
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
    FLUSH PRIVILEGES;

    注意:在较新的 MySQL 版本中,直接使用 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_plugin BY 'password'; 配合 GRANT 可能更稳妥,具体视版本而定。

3. 检查 MySQL 配置文件 (可选)

默认情况下,MySQL 绑定的是 127.0.0.1。如果需要确保它监听所有网卡,请检查 /etc/mysql/my.cnf/etc/my.cnf 文件:

  • 找到 bind-address = 127.0.0.1 这一行。
  • 将其注释掉(前面加 #)或者改为 0.0.0.0
  • 重启 MySQL 服务使配置生效:systemctl restart mysqld (或 mysqld_safe)。

⚠️ 重要安全警告

由于轻量服务器通常部署在公网,直接开放 3306 端口面临极高的被暴力破解风险。强烈建议采取以下措施之一:

  1. 限制 IP 白名单:只在安全组中放行你个人的固定公网 IP。
  2. 使用 SSH 隧道:不要直接开放 3306 端口。保持安全组只开放 22 端口,然后在本机通过 SSH 命令建立隧道进行连接,这样最安全且无需修改 MySQL 配置。
    # 本机执行
    ssh -L 3306:127.0.0.1:3306 root@<你的轻量服务器公网IP>
    # 之后连接本地 3306 即可访问远程数据库
  3. 更换非标准端口:虽然不能防住扫描,但可以减少自动化脚本的攻击频率。

总结:阿里云轻量服务器支持远程 MySQL,但需要你在控制台的安全组中手动放行 3306 端口,并在数据库内部配置用户权限。为了安全起见,推荐使用SSH 隧道方式连接。

未经允许不得转载:轻量云Cloud » 阿里云轻量服务器是否支持远程mysql?