mysql默认端口为3306,phpenv中修改需编辑其自带的my.ini(如d:\phpenv\mysql\my.ini)中[mysqld]段的port参数,重启phpenv的mysql服务,并同步更新phpmyadmin配置、客户端连接及windows防火墙规则。

phpEnv 中修改 MySQL 默认端口,本质是改它封装的 MySQL 实例配置,不是改 php.ini —— 配置文件在 phpEnv 自带的 MySQL 目录下,且必须重启 phpEnv 的 MySQL 服务才生效。
phpEnv 的 MySQL 配置文件在哪
phpEnv 是 Windows 下的集成环境(类似 XAMPP),它把 MySQL 打包进自己的目录结构里。默认不读系统级 my.ini 或 C:\ProgramData\MySQL\ 下的文件。
真实配置路径通常是:
-
D:\phpEnv\mysql\my.ini(假设 phpEnv 安装在 D:\phpEnv) - 或
D:\phpEnv\phpEnv\mysql\my.ini(部分版本多一层嵌套) - 若找不到,打开 phpEnv 控制面板 → 点击 MySQL 行的「配置」按钮,会自动用记事本打开正确文件
⚠️ 不要编辑 php.ini —— 那是 PHP 的配置,和 MySQL 端口无关。
在 my.ini 的 [mysqld] 段写 port=3307
用记事本或 VS Code 打开上面找到的 my.ini,确认光标落在 [mysqld] 段内(不是 [client] 或 [mysql]),然后添加或修改这一行:
port = 3307
常见错误:
- 写在
[client]下 → 只影响 mysql 命令行工具默认连接端口,服务端仍监听 3306 - 行首有空格、行尾有中文分号
;、或用了全角等号=→ 配置被忽略 - 没删掉前面的分号
;→ 变成注释,无效
保存文件后,**必须关闭并重新启动 phpEnv 的 MySQL 服务**(不是只重启 Apache/Nginx)。
重启 phpEnv MySQL 服务并验证
phpEnv 控制面板里,MySQL 行右侧有「停止」「启动」按钮。务必先「停止」再「启动」——仅点击「重启」有时不触发完整 reload。
验证是否生效:
- 命令行执行:
netstat -ano | findstr :3307→ 应看到LISTENING状态,PID 对应 mysqld.exe - 用 phpEnv 自带的 phpMyAdmin 访问时,若连不上,说明没生效;换成
mysql -h 127.0.0.1 -P 3307 -u root -p能登录才确认成功 - 登录后执行:
SELECT @@port;→ 返回3307
如果 netstat 查不到监听,或 SELECT @@port; 还是 3306,大概率是配置文件路径错了,或服务根本没读这个 my.ini。
客户端和 phpEnv 工具要手动填新端口
phpEnv 自带的 phpMyAdmin 默认连 3306,改端口后它会直接报错「#2002 Cannot log in to the MySQL server」。
解决办法只有两个:
- 改 phpMyAdmin 配置:编辑
D:\phpEnv\phpmyadmin\config.inc.php,找到$cfg['Servers'][$i]['port'] = '3306';,改成'3307' - 或更简单:在浏览器地址栏手动加端口,比如
http://localhost:8080/phpmyadmin/?server=1&port=3307(取决于你的 phpEnv 设置) - 命令行工具(如 Navicat、DBeaver)新建连接时,主机填
127.0.0.1:3307,不要填localhost(可能走 socket 而非 TCP)
Windows 防火墙默认放行 3306,但不会自动放行 3307 —— 如果你从局域网其他机器连,得手动加一条入站规则,协议选 TCP,端口填 3307。
最常被跳过的环节是:以为改了配置就完事,结果忘了 phpMyAdmin 和防火墙这两关。端口改完,所有“经过网络”的连接点都得显式对齐,包括 URL 参数、配置项、防火墙策略 —— 少一个,就卡在连接拒绝。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











