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

Laravel 8部署至Namecheap共享主机报could not find driver问题求助

Laravel 8 Namecheap共享主机could not find driver报错排查方案
  • 确认项目对应PHP版本的PDO_MYSQL扩展已启用

Namecheap共享主机支持多PHP版本共存,你通过phpinfo()查看的版本可能和Laravel实际运行使用的版本不一致。在项目根目录新建pdodriver.php文件写入以下代码,访问后查看实际加载的PDO驱动:

<?php
print_r(PDO::getAvailableDrivers());
?>

如果输出结果中没有mysql,前往cPanel「选择PHP版本」页面,选中你网站绑定的PHP版本,勾选pdo_mysql扩展后保存。

  • 校验.env数据库配置
    确保.env文件中数据库连接配置正确,不要出现拼写错误:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=你的数据库名
DB_USERNAME=你的数据库用户名
DB_PASSWORD=你的数据库密码

如果配置无误仍报错,可新增一行socket配置适配共享主机环境:

DB_SOCKET=/tmp/mysql.sock
  • 清除Laravel配置缓存
    部署后旧的配置缓存会导致新修改的配置不生效,有SSH权限的情况下在项目根目录执行:
php artisan config:clear
php artisan cache:clear

无SSH权限可临时在routes/web.php添加路由触发清除:

Route::get('/clear-all-cache', function () {
    Artisan::call('config:clear');
    Artisan::call('cache:clear');
    return "缓存已清理,可删除该路由";
});

访问该路由生效后务必删除对应代码,避免安全风险。

  • 检查数据库用户权限
    前往cPanel「MySQL数据库」页面,确认.env中填写的数据库用户已经绑定到对应数据库,且授予了全部读写权限。
  • 原生PDO测试连接
    新建dbtest.php文件用原生PDO验证连接是否正常:
<?php
$host = '127.0.0.1';
$db   = '你的数据库名';
$user = '你的数据库用户名';
$pass = '你的数据库密码';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
try {
     $pdo = new PDO($dsn, $user, $pass, $options);
     echo "数据库连接正常,驱动加载无误";
} catch (\PDOException $e) {
     throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>

如果该测试仍报驱动错误,直接联系Namecheap技术支持核查对应PHP版本的pdo_mysql扩展是否存在安装损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:54:02