宝塔面板如何开启MySQL远程访问权限_修改访问权限为所有人并放行3306端口
MySQL远程连接需四步:改用户权限为%、放行宝塔防火墙3306端口、云服务器安全组同步放行、修改my.cnf中bind-address为0.0.0.0并重启服务;若仍失败,检查认证插件兼容性。 MySQL 用户权限没开远程,连都连不上 很多朋友第一次配置远程连接时,都会卡在第一步。默认安装的 My
MySQL远程连接需四步:改用户权限为%、放行宝塔防火墙3306端口、云服务器安全组同步放行、修改my.cnf中bind-address为0.0.0.0并重启服务;若仍失败,检查认证插件兼容性。

MySQL 用户权限没开远程,连都连不上
很多朋友第一次配置远程连接时,都会卡在第一步。默认安装的 MySQL,无论是独立安装还是通过宝塔面板一键部署,其用户权限通常只允许 localhost 或 127.0.0.1 进行本地连接。这时候,外部 IP 尝试连接会直接收到一个明确的拒绝信息:Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server。需要明确的是,这并非防火墙在作祟,而是 MySQL 自身的权限机制在发挥作用。
所以,操作顺序至关重要:必须先调整用户权限,再去处理端口放行。顺序一旦颠倒,就是白费功夫。
- 最直观的方法是使用宝塔面板:进入「数据库」模块,找到目标数据库,点击对应的「root」或目标用户名,选择「修改权限」。关键一步是将「访问权限」从默认的
localhost修改为%(这个符号代表允许来自任意主机的连接)。 - 如果在宝塔界面找不到这个选项,那很可能该用户是通过命令行创建的。这时就需要手动执行 SQL 命令来授权:
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- 完成修改后,别忘了重启 MySQL 服务(在宝塔界面点击「重启」按钮),否则新的权限设置不会生效。
宝塔自带防火墙默认拦 3306,得手动放行
解决了权限问题,只是闯过了第一关。宝塔面板自带的防火墙,在「安全」→ 「防火墙」设置中,默认策略是封禁所有非白名单端口,而 MySQL 的标准端口 3306 恰恰就在这个黑名单里。如果不放行,外部的 TCP 连接请求在系统层面就会被拦截,根本传递不到 MySQL 服务进程。
操作路径其实很清晰:
- 在宝塔左侧菜单栏点击「安全」,进入「防火墙」页面,找到「放行端口」选项。
- 输入端口号
3306,协议选择TCP,然后点击「放行」。 - 确认状态栏显示为「已放行」,同时检查一下避免重复添加(重复操作虽不会报错,但确实没有必要)。
- 这里有个常见的“坑”:如果您的服务器部署在阿里云、腾讯云等云平台上,除了宝塔的系统层防火墙,还必须同步在云服务商的安全组规则中放行
3306端口。云平台的安全组是网络层的防护,两者缺一不可。
MySQL 配置文件绑定了 127.0.0.1,远程连不上
到了这一步,权限和端口都畅通了,但连接依然失败?问题可能藏在更深层的配置里。尤其是宝塔 8.x 版本之后集成的 MySQL 8.0+,其配置文件 /www/server/mysql/etc/my.cnf 中,默认可能包含了 bind-address = 127.0.0.1 这一行。这个配置会让 MySQL 服务只监听本地的回环地址,外部网络请求自然也就石沉大海了。
解决方法依然是修改配置并重启服务:
- 使用宝塔的文件管理器,打开上述路径的
my.cnf文件。 - 搜索
bind-address这一项,将其修改为bind-address = 0.0.0.0(或者直接删除这一行,MySQL 默认会监听所有网络接口)。 - 保存文件后,回到宝塔的「软件商店」,找到 MySQL 服务,点击「重启」。
- 如何验证是否生效?可以通过 SSH 连接到服务器,执行命令
netstat -tlnp | grep :3306。如果看到监听地址显示为0.0.0.0:3306或*:3306,才算是大功告成。
连上了但被拒绝,检查是不是密码认证插件不兼容
有时候,连接能建立,但最终登录却被拒绝,并伴随报错:Client does not support authentication protocol requested by server。这通常是 MySQL 8.0 版本引入的新默认认证插件 caching_sha2_password 惹的祸。许多旧的客户端(例如某些老版本的 PHP 扩展或 Na vicat)尚未支持该协议,它们只认传统的 mysql_native_password。
针对此问题,有一个临时的解决方案(但请注意,长期对 root 用户使用此方法不推荐):
- 首先登录到 MySQL 命令行:
mysql -u root -p。 - 执行以下命令修改用户的认证方式:
ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
- 之后别忘了执行
FLUSH PRIVILEGES;刷新权限。 - 需要特别强调的是,如果是为了远程管理,更安全的做法不是直接修改 root 用户的认证方式,而是创建一个新的专用用户并赋予相应权限,这样可以有效降低安全风险。
最后必须提醒的是,打通远程连接固然重要,但安全边界绝不能松懈。将用户权限设为 % 和直接对外暴露 3306 端口,本身就会引入风险。在生产环境中,至少应该将 % 替换为具体的、可信的 IP 地址段。更进一步,考虑通过 SSH 隧道、跳板机或数据库中间件来进行访问隔离,这才是兼顾便捷与安全的实践之道。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













