phpEnv 的 MySQL 默认禁止远程连接,需修改 my.ini 中 bind-address 为 0.0.0.0 并重启服务,再通过 GRANT 或更新 user 表授权 root@'%',且必须执行 flush privileges。

phpEnv 自带的 MySQL 默认禁止远程连接,ERROR 1130 就是权限没开 —— 不改 user 表或不授权,光配 IP 或防火墙没用。
确认 phpEnv 的 MySQL 实际运行路径和配置文件位置
phpEnv 是集成环境,它的 MySQL 服务不是系统级安装,配置和数据目录都封装在 phpEnv 安装目录里。常见路径为:phpenv\mysql\ 或 phpenv\MySQL\(具体看版本),关键文件是:my.ini(Windows)或 my.cnf(Linux 模拟环境)。必须先找到它,否则后续操作全无效。
- 启动 phpEnv 控制面板 → 点击 MySQL 对应的「配置」按钮,通常会直接打开
my.ini - 若无此按钮,手动进入 phpEnv 安装目录,搜索
my.ini,重点检查[mysqld]段下是否有bind-address = 127.0.0.1(这是默认值,必须改成0.0.0.0或注释掉) - 改完保存,**必须重启 phpEnv 中的 MySQL 服务**(不是 Windows 服务,是 phpEnv 面板里的启停按钮)
登录本地 MySQL 后修改 user 表 host 字段
phpEnv 的 MySQL root 密码通常为空或为 root,用命令行连:phpenv\mysql\bin\mysql -u root -p(回车跳过密码,或输 root)。进库后执行:
解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。
use mysql; update user set host = '%' where user = 'root'; flush privileges;
- 这一步只对已存在的
root@localhost记录生效;如果select host, user from user;里压根没有root行,说明用户被删了或初始化异常,得用授权法重建 - 注意:MySQL 8.0+ 的
user表字段名已从password改为authentication_string,但 phpEnv 多数仍用 5.7,所以update语句可直接用 - 执行完务必
flush privileges,否则改了也不生效
用 GRANT 授权法更安全(推荐给生产倾向的本地开发)
比起直接改 user 表,GRANT 更规范,也兼容 MySQL 8.0+ 的认证插件(比如 caching_sha2_password):
CREATE USER 'root'@'%' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 第一行显式创建允许任意主机连接的
root用户(空密码);若需密码,把''换成'your_password' - 第二行授予权限;
WITH GRANT OPTION允许该用户再给别人授权(调试时方便) - 如果提示
ERROR 1054 (42S22): Unknown column 'password',说明你连的是 MySQL 8.0+,此时不要碰password字段,只用GRANT+CREATE USER - phpEnv 若捆绑的是 MySQL 8.0,PyCharm 或 Navicat 连接时还可能报
caching_sha2_password不支持,需在连接参数里加auth_plugin=mysql_native_password
真正卡住人的地方往往不是步骤本身,而是 phpEnv 的 MySQL 服务没真正重启、my.ini 改错文件(比如改了系统级的而非 phpEnv 自带的)、或者用了 MySQL 8.0 却按老方法去 update password 字段 —— 这些细节不核对清楚,反复试都没用。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










