MySQL允许外网访问的授权与配置步骤
通过简单的SQL授权命令即可实现MySQL的远程连接功能。本文整理了从检查当前用户状态到执行授权指令、刷新权限表的完整操作逻辑,适用于需要将本地数据库开放给外部应用或服务访问的场景。
结果与目标
使指定的数据库用户(通常为 root 或新建账号)能够透过互联网 IP 地址连接至 MySQL 服务器,而不仅限于 localhost。
准备条件
- 服务器环境:已安装并运行的 MySQL 服务;确保云服务器的安全组或防火墙规则已放行对应的 MySQL 端口(默认
3306)。 - 操作凭证:拥有管理员权限的 MySQL 账号及密码。
- 风险提醒:开放数据库外网访问会面临安全风险。操作前请务必备份数据库文件,并确保使用强度较高的密码。
真实操作顺序
第1步:登录 MySQL 并进入权限库
目的:获取操作数据库底层权限表的管理权限。
入口:命令行终端 (CMD/Terminal)。
动作:
- 打开终端,输入以下命令并回车,按提示输入密码:
mysql -u root -p - 进入系统自带权限控制库
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外网连接的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









