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

Ubuntu命令行运行PHP脚本出现PDOException: could not find driver求助

解决Ubuntu命令行PHP脚本PDO MySQL驱动缺失问题

嘿,这个问题我太熟了!你遇到的情况本质是Ubuntu里Apache的PHP环境和命令行(CLI)的PHP环境是完全分开的——浏览器能正常运行说明Web环境的PHP已经装了PDO MySQL驱动,但CLI版本的PHP没装对应的驱动包,所以才会抛出"could not find driver"异常。

下面是一步步的解决方法:

1. 确认命令行PHP的版本

首先得搞清楚你CLI用的是哪个版本的PHP,因为Ubuntu可能同时装了多个PHP版本。在终端运行:

php -v

比如输出可能是PHP 8.1.2-1ubuntu2.14 (cli),那你的版本就是8.1。

2. 安装对应版本的PDO MySQL驱动

根据你刚才查到的PHP版本,安装对应的mysql驱动包。比如PHP8.1就运行:

sudo apt-get update && sudo apt-get install php8.1-mysql

如果是PHP7.4就换成php7.4-mysql,以此类推。

3. 验证驱动是否成功加载

安装完成后,运行下面的命令查看CLI PHP加载的模块:

php -m

在输出列表里找pdo_mysql,如果能看到这个条目,说明驱动已经成功加载了。

4. 重新测试你的脚本

现在再运行你的测试脚本:

php /var/www/test.php

应该就能正常连接MySQL了,不会再抛出驱动找不到的异常。

补充说明

  • 如果你是通过第三方PPA(比如ondrej/php)安装的PHP,也要确保安装对应版本的phpX.X-mysql包,和官方源的安装命令一致。
  • 不需要重启任何服务,因为CLI PHP每次运行都会重新加载配置,安装完驱动直接生效。

附你的测试代码(方便参考):

<?php 
$username = "root"; 
$pwd = "test"; 
try { 
    $pdo = new PDO("mysql:host=localhost;port=3306;dbname=db", $username, $pwd, [PDO::ATTR_PERSISTENT => true]); 
} catch (PDOException $e) { 
    die("Connect Error Infomation:" . $e->getMessage()); 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:43:14