Laravel连接MySQL数据库失败:执行php artisan migrate报错找不到驱动
执行php artisan migrate时出现如下错误栈:
at vendor\laravel\framework\src\Illuminate\Database\Connection.php:822 818▕ $this->getName(), $query, $this->prepareBindings($bindings), $e 819▕ ); 820▕ } 821▕ ➜ 822▕ throw new QueryException( 823▕ $this->getName(), $query, $this->prepareBindings($bindings), $e 824▕ ); 825▕ } 826▕ } 1 vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:65 PDOException::("could not find driver") 2 vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:65 PDO::__construct()
这个错误的核心是PHP的MySQL PDO驱动未成功加载,即便你已经移除了XAMPP中PHP配置文件的分号,可能还有这些环节没处理:
确认修改的是CLI环境使用的php.ini
很多人会改XAMPP里的php.ini,但执行php artisan用的是CLI版本的PHP,可能对应不同的配置文件。执行php --ini命令,查看Loaded Configuration File对应的路径,确保你修改的是这个文件。确保启用了正确的扩展行
在正确的php.ini文件中,找到extension=pdo_mysql(Windows下可能是extension=php_pdo_mysql.dll),去掉前面的分号。同时如果存在extension=mysqlnd这一行,也要确保它没有被注释,PDO MySQL依赖这个扩展。重启服务与终端
修改php.ini后,必须重启XAMPP的Apache服务。另外,CLI环境的配置需要重启终端或IDE(比如VS Code)才能生效,否则还是会加载旧的配置。验证驱动是否加载成功
执行php -m命令,查看输出列表里是否有pdo_mysql项。如果有,说明驱动加载成功;如果没有,回到前面的步骤检查配置文件路径和扩展行是否正确。额外排查(针对Windows)
检查XAMPP的php/ext目录下是否存在php_pdo_mysql.dll文件,如果缺失,说明XAMPP安装不完整,需要重新安装对应版本的XAMPP。
内容的提问来源于stack exchange,提问作者Ahmed Mahamed Abdallh

