在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序
Posted
技术标签:
【中文标题】在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序【英文标题】:pdo exception driver not found in laravel for sqlite 【发布时间】:2016-12-21 08:18:11 【问题描述】:当我运行php artisan migrate
命令时,我得到:
[PDOException] 找不到驱动程序。
我将我的默认数据库设为 sqlite,并使用php -i
命令检查是否有用于 sqlite 的 pdo 驱动程序。我无法理解我的问题。
【问题讨论】:
你的驱动真的安装了吗?它在你的 php.ini 中启用了吗? 你运行的是什么操作系统? 我使用的是 ubuntu 16.04 有人发现了巫术吗?同样的错误在这里... 【参考方案1】:对于使用 Windows 和 Xampp 的用户 只需在 php.ini 中取消注释这些行:
extension=pdo_sqlite
extension=sqlite3
【讨论】:
【参考方案2】:您需要在您的服务器上安装 PDO,或者您可能只需要在您的 php.ini
文件中注释掉以下行。
;extension=pdo_sqlite
(删除;
字符)
然后您应该重新启动服务器。
【讨论】:
【参考方案3】:您的系统缺少php
SQLite
安装。
使用以下方式安装:
sudo apt-get install php7.0-sqlite
然后重启你的apache服务器
sudo /opt/lampp/lampp restart
【讨论】:
帮忙。我打算使用 sqlite 进行测试,我在 database.php 配置文件中将我的数据库设置为storage_path('test.sqlite')
。我假设test.sqlite
应该是一个二进制文件。如何创建test.sqlite
?我是否只创建一个扩展名为 .sqlite
的文件?
对于 php 7.1 只需使用 sudo apt-get install php7.1-sqlite
请注意,PHP 的 sqlite 模块是它自己的包,除了 sqlite 本身之外,还必须安装它。 (对于 Arch linux,包名称是 php-sqlite
。)您还必须在 php.ini 中启用 pdo_sqlite.so
和 sqlite3.so
扩展。【参考方案4】:
我使用的是 Laravel 5.3,我不得不注释掉 .env 文件中的一些参数。
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=homestead
# DB_USERNAME=homestead
# DB_PASSWORD=secret
【讨论】:
【参考方案5】:如果您使用 sqlite 并尝试更改表或删除列,您必须要求 doctrine/dbal
,正如 Laravel docs 中所建议的那样。
只需发送composer require doctrine/dbal
并重试迁移。
【讨论】:
以上是关于在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
在 Ionic 5 中找不到电容器社区/sqlite 的 GlobalSQLite 文件
在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”