You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 7.1.3连接Windows 10下MySQL 5.7.31失败:找不到驱动求助

解决PHP7连接MySQL5.7提示"could not find driver"的思路

嘿,我之前把PHP5升级到7的时候也碰到过几乎一模一样的驱动问题,结合你的情况,给你几个实打实的排查方向:

  • 先确认扩展文件是否真的存在
    别只盯着php.ini里的配置,得去对应的扩展目录里找实际文件:

    • Linux系统下,找到PHP安装目录的ext文件夹(比如/usr/local/php7/ext),检查有没有mysqli.so和pdo_mysql.so;
    • Windows系统则看php/ext文件夹里有没有php_mysqli.dll和php_pdo_mysql.dll。
      如果文件缺失,那就是PHP7安装时没装上对应扩展:
    • Linux用包管理器补装就行,比如apt-get install php7.4-mysql(记得替换成你的PHP7具体版本);
    • Windows要下载和你PHP版本、架构(x86/x64)、线程安全(TS/NTS)完全匹配的扩展包,放到ext目录里。
  • 确认你修改的是Apache实际加载的php.ini
    这是很多人踩过的坑:改了一个php.ini,但Apache加载的是另一个!
    新建一个phpinfo.php文件,内容写<?php phpinfo(); ?>,访问它找到「Loaded Configuration File」这一行,这才是你真正需要修改的配置文件。同时在phpinfo里搜索mysqli和pdo_mysql,如果看不到对应的模块信息,说明扩展确实没加载成功。

  • 验证extension_dir路径的正确性
    在phpinfo里查看extension_dir的实际生效值,和你设置的路径对比:

    • Linux建议用绝对路径,比如/usr/local/php7/ext;
    • Windows如果用相对路径,要确保是Apache运行目录的相对路径,保险起见直接用绝对路径(比如C:\php\ext)。
      注意:PHP7的扩展目录结构和PHP5可能不一样,别直接沿用旧版本的路径。
  • 区分命令行和Apache的PHP配置
    有时候命令行PHP能加载扩展,但Apache不行,说明两者用的配置文件不一样。在终端运行php -m,看看输出里有没有mysqli和pdo_mysql:

    • 如果命令行有、Apache没有,就把命令行的php.ini配置同步到Apache加载的那个文件里;
    • 如果命令行也没有,那就是全局的扩展加载问题,回到第一步检查文件和配置。
  • Linux下检查扩展文件权限
    要是扩展文件存在但Apache加载不了,大概率是权限不够。给扩展文件加上可读权限:

    chmod 644 /usr/local/php7/ext/mysqli.so
    chmod 644 /usr/local/php7/ext/pdo_mysql.so
    

    或者把文件所属用户改成Apache的运行用户(比如www-data):

    chown www-data:www-data /usr/local/php7/ext/mysqli.so
    
  • 确保Apache完全重启
    别只点个“重启”按钮就完事,Linux下用systemctl restart apache2(Systemd系统)或者service apache2 stop && service apache2 start,Windows则在服务列表里完全停止再启动Apache,确保配置彻底生效。

内容的提问来源于stack exchange,提问作者adig14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:47:33