Laravel 11中“could not find driver”错误及后续问题解决办法
解决Laravel 11启动时的数据库驱动及会话表问题
关于最初的SQLite驱动问题(若后续需使用SQLite可参考)
你之前遇到的could not find driver关联PRAGMA foreign_keys = ON;错误,本质是PHP缺少SQLite的PDO扩展。如果之后还要用SQLite,需在php.ini中开启extension=pdo_sqlite,然后重启Apache服务。
重点解决MySQL配置后的会话表错误
切换到MySQL后出现的select * from sessions where id = ...错误,核心原因是MySQL中尚未创建sessions表——Laravel默认使用数据库存储会话时,依赖这个表来保存会话数据。按以下步骤操作即可解决:
1. 确认目标数据库已创建
登录MySQL(比如通过XAMPP的phpMyAdmin),检查是否存在名为laravel的数据库。如果没有,手动执行SQL创建:
CREATE DATABASE laravel;
2. 执行Laravel迁移命令
Laravel自带了会话表的迁移文件,打开终端进入项目根目录,运行以下命令生成所有默认数据表(包括sessions):
php artisan migrate
3. 清除配置缓存并重启服务
.env配置修改后可能不会立即生效,运行命令清除缓存:
php artisan config:clear php artisan cache:clear
之后重启XAMPP的Apache和MySQL服务。
4. 确认会话驱动配置
打开config/session.php,检查driver配置项是否指向数据库:
'driver' => env('SESSION_DRIVER', 'database'),
如果.env中未设置SESSION_DRIVER,默认就是database,无需修改;若设置了其他值(如file)但你想用数据库存储会话,需将其改为database。
额外排查点
- 确保XAMPP的MySQL模块处于运行状态;
- 核对.env中的数据库账号密码是否与MySQL实际配置一致(比如root用户是否设置了密码)。
内容的提问来源于stack exchange,提问作者user14640679
相关产品推荐
相关产品推荐

