MySQL允许外网远程访问配置指南

陆景行
陆景行
发布时间:2026-10-13| 4人浏览过
原创

默认情况下MySQL仅允许本地localhost访问。如需实现外网或其他设备远程连接数据库,需要修改用户表的Host字段或使用GRANT语句授予相应权限,并刷新系统权限表方可生效。

方法一:修改User表(适用于旧版本MySQL 5.7及以下)

在早期版本的MySQL中,可以通过直接更新mysql数据库下的user表来实现远程访问。操作前请确保你拥有足够的数据库权限。

  1. 登录MySQL:使用命令行工具以root身份登录到本地数据库。
mysql -u root -p

输入密码进入后,切换至mysql系统库:

use mysql;

查询当前用户的host设置,确认原有配置:

select host, user from user;

将root用户的host修改为通配符“%”,表示允许来自任何IP的连接:

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

最后务必执行刷新权限命令,否则修改不会立即生效:

flush privileges;

方法二:使用GRANT语句(推荐,安全性更高)

这是更规范且常用的做法,可以针对特定用户和IP进行精确授权。

第1步:允许所有主机连接

如果你想允许root用户使用指定密码从任何IP地址连接到服务器:

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

第2步:允许特定IP连接

出于安全考虑,通常建议只授权特定的开发机或应用服务器的固定IP。例如,允许IP为192.168.1.104的主机连接:

GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'192.168.1.104' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
flush privileges;

常见问题与排错

  • 修改不生效:绝大多数情况是因为忘记执行 flush privileges;。
  • 防火墙拦截:如果SQL层面已授权但仍无法连接,请检查服务器操作系统(如CentOS、Ubuntu)或云厂商控制台的安全组规则,确保3306端口对外开放。
  • 配置文件限制:检查 /etc/my.cnf 或 /etc/mysql/my.cnf,若包含 bind-address=127.0.0.1,请将其注释掉或改为 0.0.0.0,随后重启MySQL服务。

以上就是配置MySQL允许外网远程访问的详细内容,更多关于MySQL网络配置的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。