MySQL允许外网访问的授权与配置步骤

顾星河
顾星河
发布时间:2026-10-13 | 2人浏览过
原创

通过简单的SQL授权命令即可实现MySQL的远程连接功能。本文整理了从检查当前用户状态到执行授权指令、刷新权限表的完整操作逻辑,适用于需要将本地数据库开放给外部应用或服务访问的场景。

结果与目标

使指定的数据库用户(通常为 root 或新建账号)能够透过互联网 IP 地址连接至 MySQL 服务器,而不仅限于 localhost。

准备条件

  • 服务器环境:已安装并运行的 MySQL 服务;确保云服务器的安全组或防火墙规则已放行对应的 MySQL 端口(默认 3306)。
  • 操作凭证:拥有管理员权限的 MySQL 账号及密码。
  • 风险提醒:开放数据库外网访问会面临安全风险。操作前请务必备份数据库文件,并确保使用强度较高的密码。

真实操作顺序

第1步:登录 MySQL 并进入权限库

目的:获取操作数据库底层权限表的管理权限。

入口:命令行终端 (CMD/Terminal)。

动作:

  1. 打开终端,输入以下命令并回车,按提示输入密码:
    mysql -u root -p
  2. 进入系统自带权限控制库 mysql:
    use mysql;

第2步:查询当前的 Host 状态

目的:确认 root 用户当前允许的访问来源范围。

动作:执行查询语句:
select user, host from user;

观察结果:若表中存在某用户的 host 字段值为 %(代表任意 IP),则说明该用户已支持任意主机连接,可直接跳到第4步。

第3步:更新 Root 用户的访问地址(二选一)

目的:解除对 IP 的限制。

动作:根据需求选择以下一种方式修改:

方案A:直接修改现有 Root 用户(推荐用于开发测试)

将现有的 root 用户所绑定的 host 变更为 %,使其对所有网络来源开放。

update user set host='%' where user='root';

方案B:使用授权命令为新场景创建账户

此方法不破坏原有配置,常用于授予特定账号或限定特定来源的权限。

场景1:授权任意 IP 以指定密码登录:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的新密码' WITH GRANT OPTION;

场景2:仅允许指定 IP(如 192.168.1.100)连接:

GRANT ALL PRIVILEGES ON *.* TO 'tuser'@'192.168.1.100' IDENTIFIED BY 'tpwd' WITH GRANT OPTION;

第4步:刷新系统权限表

目的:使上述修改立即生效,无需重启数据库。

动作:在客户端输入以下命令并执行:
FLUSH PRIVILEGES;

第5步:验证连接

可观察状态:尝试从另一台机器的数据库客户端(如 Navicat, DBeaver)填写外网 IP 进行连接。若能成功建立会话,则表示外网访问权限已开通。

简要总结

配置MySQL远程访问的核心在于修改 mysql.user 表中用户的 host 属性(赋值为 %)或通过 GRANT 语句赋予特定源IP的访问权,务必牢记执行完操作后刷新权限表。以上就是MySQL允许外网访问设置步骤的详细内容,更多关于MySQL外网连接的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表