腾讯云轻量服务器部署MySQL后如何开启远程访问?

在腾讯云轻量应用服务器(Lighthouse)上部署 MySQL 后,默认只允许本地连接。要开启远程访问,需要同时完成 MySQL 内部配置系统防火墙设置腾讯云安全组规则 三个步骤。

以下是详细操作指南:

第一步:修改 MySQL 用户权限(核心步骤)

默认情况下,MySQL 的 root 用户或普通用户通常只允许从 localhost 登录。你需要创建一个允许远程连接的用户,或者修改现有用户的 host 属性。

  1. 登录 MySQL

    mysql -u root -p

    (输入密码后进入命令行)

  2. 创建/授权远程用户(推荐方式)
    建议新建一个专用账号用于远程连接,而不是直接开放 root 权限,以提高安全性。

    执行以下 SQL 语句(请替换为你的实际信息):

    -- 创建用户 'myuser' (密码设为 'YourStrongPassword'),允许任意 IP 访问
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'YourStrongPassword';
    
    -- 赋予所有数据库权限
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
    
    -- 刷新权限使配置生效
    FLUSH PRIVILEGES;

    注:如果你必须使用 root 远程登录(不推荐),可将 'myuser' 替换为 'root',但请务必设置强密码。

  3. 退出 MySQL

    EXIT;

第二步:配置系统防火墙(Linux 自带)

如果你的服务器安装了 ufwfirewalld,需要放行 3306 端口。

情况 A:使用 Ubuntu/Debian (ufw)

# 允许 3306 端口
sudo ufw allow 3306/tcp
# 重新加载防火墙
sudo ufw reload

情况 B:使用 CentOS/RHEL (firewalld)

# 添加 3306 端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重载防火墙
sudo firewall-cmd --reload

情况 C:无防火墙或已关闭

如果未安装上述工具,通常无需额外操作,但需确保 /etc/my.cnf 配置正确(见下一步)。


第三步:检查 MySQL 配置文件 (my.cnf)

确保 MySQL 没有绑定到 127.0.0.1 或注释掉监听地址。

  1. 编辑配置文件

    # Ubuntu/Debian
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    # CentOS/RHEL
    sudo vim /etc/my.cnf
  2. 查找并修改 bind-address
    找到类似 bind-address = 127.0.0.1 的行:

    • 方案一(推荐):将其注释掉或删除该行。
      # bind-address = 127.0.0.1
    • 方案二:改为 0.0.0.0(表示监听所有网卡)。
      bind-address = 0.0.0.0
  3. 重启 MySQL 服务

    # Ubuntu/Debian
    sudo systemctl restart mysql
    # CentOS/RHEL
    sudo systemctl restart mysqld

第四步:配置腾讯云控制台安全组(关键步骤)

这是轻量服务器最容易遗漏的一步。即使 MySQL 和系统防火墙都开了,如果腾讯云安全组没放行,外部依然无法连接。

  1. 登录 腾讯云控制台。
  2. 进入 轻量应用服务器 页面,点击你的实例。
  3. 在左侧菜单或右侧详情页找到 安全组(或直接点击“防火墙”标签页)。
  4. 点击 手动配置 -> 添加规则
  5. 填写以下信息:
    • 协议类型:TCP
    • 端口范围:3306
    • 授权对象0.0.0.0/0 (允许所有 IP) 或指定你自己的公网 IP (更安全)。
    • 策略:允许
  6. 保存规则。

第五步:验证与测试

完成上述步骤后,在你的本地电脑(Windows/Mac/Linux)上使用客户端工具(如 Navicat, DBeaver, 或命令行)进行连接测试。

  • 主机/IP:服务器的公网 IP
  • 端口:3306
  • 用户名:刚才创建的 myuser
  • 密码:设置的密码

常见排查提示:

  • 如果提示 Connection refused:通常是 MySQL 未启动、bind-address 未改、或系统防火墙/安全组未放行。
  • 如果提示 Access denied:说明网络通了,但用户名、密码错误或该用户没有远程权限(检查第一步中的 GRANT 语句)。
  • 安全建议:生产环境不建议将安全组的 0.0.0.0/0 长期开放给 3306 端口,建议仅对你本地的固定 IP 开放,或使用 SSH 隧道(SSH Tunneling)进行加密连接。