PHPStudy 8.0集成MySQL默认禁用远程连接,需同步解除四层封锁:①在my.ini中设bind-address=0.0.0.0并重启服务;②创建'remote_user'@'%'并授权;③改认证插件为mysql_native_password;④Windows防火墙及云安全组放行3306端口。

PHPStudy 8.0 集成的 MySQL 默认不允许远程连接,这是出于安全考虑的出厂设置。根本原因不是“不能”,而是它从安装起就只面向本地开发环境设计——所有关键限制都默认启用,必须手动解除。
下面几个环节只要有一处没配对,远程连接就会失败:
MySQL 绑定地址限制
PHPStudy 的 MySQL 配置文件(通常是 my.ini,路径类似 D:\phpstudy_pro\Extensions\MySQL8.0.33\conf\my.ini)中,[mysqld] 段默认没有显式配置 bind-address。
MySQL 8.0+ 在未指定时会默认绑定到 127.0.0.1(仅本地),而非 0.0.0.0(所有接口)。
✅ 正确做法:
- 在
[mysqld]下添加或修改这一行:bind-address = 0.0.0.0
- 保存后必须重启 MySQL 服务(在 phpStudy 界面点“重启”或右键服务→重启)。
用户权限未开放远程访问
phpStudy 安装后,root 用户默认只允许从 localhost 登录,即:
'root'@'localhost'
而远程连接尝试的是 'root'@'%' 或 'root'@'192.168.x.x' —— 这是两个完全不同的账号,权限不互通。
✅ 正确做法(推荐新建专用用户,更安全):
- 打开 phpStudy → 点击「数据库」→ 「MySQL 命令行」,输入 root 密码登录;
- 执行以下命令(替换
your_password):CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
⚠️ 注意:不要直接改
root的 host 为%,尤其在公网暴露时风险极高。立即学习“PHP免费学习笔记(深入)”;
MySQL 8.0 认证插件不兼容
PHPStudy 8.0 多集成 MySQL 8.0+,其默认认证方式是 caching_sha2_password,但旧版 PHP(如 phpStudy 自带的 PHP 7.4)、Navicat、甚至部分 Python 客户端不原生支持该插件,会报错:
解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。
The server requested authentication method unknown to the client
✅ 解决方法(二选一):
-
推荐:把用户认证方式改为兼容性更好的
mysql_native_password:ALTER USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;
- 或在连接客户端中显式指定
default-auth=mysql_native_password(如命令行加参数-o default-auth=mysql_native_password)。
Windows 防火墙/安全组拦截
即使 MySQL 已监听 0.0.0.0:3306,Windows 防火墙仍会默认阻止外部入站 TCP 3306 请求。
✅ 操作:
- 打开「控制面板 → Windows Defender 防火墙 → 高级设置」;
- 新建「入站规则」→ 选择「端口」→ TCP 3306 → 允许连接 → 应用于所有配置文件;
- 若用云服务器(如腾讯云、阿里云),还必须在云平台安全组中单独放行 3306 端口——这一步最容易被忽略。
补充验证建议
- 本地测试监听是否生效:
netstat -ano | findstr :3306
应看到
0.0.0.0:3306或*:3306,而非127.0.0.1:3306。 - 远程机器先用 telnet 测试端口连通性:
telnet 你的服务器IP 3306
若超时或拒绝连接,问题一定出在防火墙或网络层;若能连上但认证失败,则聚焦用户权限和认证插件。
不复杂但容易忽略


















