跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

phpEnv安装MySQL 5.6详细步骤 phpEnv老版本数据库配置教程

phpEnv 不自带 MySQL,需手动集成本地 MySQL 5.6:下载解压 zip 版→配置 ANSI 编码的 my.ini→管理员运行 mysqld --initialize-insecure→注册服务→启动→修改 php.ini 启用 mysqli 和 pdo_mysql 扩展→PHP 连接时用 127.0.0.1 而非 localhost。 phpEnv 本身不自带 MySQL,所谓“phpEnv 安装 MySQL”其实是手动集成 MySQL 到 phpEnv 环境中——关键不是装 phpEnv,而是让 phpEnv 下的 PHP 能连上你本地独立安装的 MySQL 5.6 实例。 为什么 phpEnv 没有内置 MySQL? phpEnv 是一个 PHP 版本管理工具(类似 pyenv),专注切换
php.exe
和对应扩展,不负责数据库服务。它默认只管 PHP 运行时,MySQL 必须单独部署、启动,并确保 PHP 扩展能通信。 常见误解:以为
phpenv install mysql
可行 —— 实际不存在该命令 真实路径:下载 MySQL 5.6 zip 包 → 解压 → 配置
my.ini
→ 注册 Windows 服务 → 启动 → 修改 PHP 的
php.ini
启用扩展 phpEnv 管的只是
PHP_BINARY
路径和
extension_dir
,它不修改系统服务或环境变量中的
PATH
(这点容易漏) MySQL 5.6 解压版配置要点(Windows) MySQL 5.6 官方已停止维护,但仍有老项目依赖,必须用 zip 免安装版(msi 安装包在 5.6 后期已难找,且与 phpEnv 手动集成逻辑冲突)。 解压后重命名
my-default.ini
为
my.ini
,否则
mysqld --install
会忽略配置
basedir
和
datadir
路径必须用正斜杠
/
或双反斜杠
\
,单反斜杠
在 Windows ini 文件中可能被解析为转义符
my.ini
文件编码必须是 ANSI(非 UTF-8),否则服务启动失败且报错
Unknown suffix '.' on line 1
注册服务前,先以管理员身份运行:
mysqld --initialize-insecure --user=mysql
(生成空密码 root 用户);再执行
mysqld -install
首次启动后,立刻用
mysql -u root --skip-password
登录并执行
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
,否则后续 PHP 连接会因密码为空被拒绝(MySQL 5.6 默认不允许空密码远程连接) PHP 扩展启用与连接验证(phpEnv + MySQL 5.6) phpEnv 切换到目标 PHP 版本后,需确认
php.ini
中三项配置全部生效,缺一不可: PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”;
extension_dir
指向正确的扩展目录,例如:
extension_dir = "D:/phpEnv/php/5.6.40/ext"
(路径需与你 phpEnv 当前激活版本一致) 取消注释这三行(注意:5.6 仍支持
php_mysql.dll
,但已废弃;推荐只开
php_mysqli.dll
和
php_pdo_mysql.dll
):
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
检查
php -m | findstr mysql
输出是否含
mysqli
和
pdo_mysql
;若无,说明
extension_dir
错误或 DLL 文件缺失 写个测试脚本:
,不要用
localhost
(Windows 下可能走 socket 导致超时) 容易被忽略的兼容性陷阱 MySQL 5.6 与较新 PHP 5.6.x(如 5.6.40)搭配时,几个静默失败点:
mysql.default_socket
在
php.ini
中留空即可,不要填
mysql.sock
(Windows 没这文件,填了反而触发连接失败) 若用 Apache,确保
LoadModule php5_module
指向的
php5apache2_4.dll
与当前 PHP 版本严格匹配(VC11/VC14、x86/x64),否则 Apache 启动报错
Invalid module error
phpEnv 激活某 PHP 版本后,
php --ini
显示的配置文件路径可能不是你编辑的那个 —— 它优先读取
PHPRC
环境变量指定路径,而非当前目录下的
php.ini
MySQL 5.6 默认
sql_mode
包含
STRICT_TRANS_TABLES
,插入空字符串到
NOT NULL
字段会直接报错,PHP 层不会抛异常,只返回
false
,需检查
mysqli_error()
真正卡住人的往往不是安装步骤,而是 ini 文件编码、PATH 未刷新、socket 与 TCP 混用、以及 phpEnv 的
PHPRC
覆盖机制 —— 这些地方没日志、不报错,只让连接一直失败。

相关文章