【问题标题】:pdo exception driver not found in laravel for sqlite在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序
【发布时间】:2016-12-21 08:18:11
【问题描述】:

当我运行php artisan migrate 命令时,我得到:

[PDOException] 找不到驱动程序。

我将我的默认数据库设为 sqlite,并使用php -i 命令检查是否有用于 sqlite 的 pdo 驱动程序。我无法理解我的问题。

【问题讨论】:

  • 你的驱动真的安装了吗?它在你的 php.ini 中启用了吗?
  • 你运行的是什么操作系统?
  • 我使用的是 ubuntu 16.04
  • 有人发现了巫术吗?同样的错误在这里...

标签: php sqlite laravel-5 pdo


【解决方案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.sosqlite3.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 并重试迁移。

        【讨论】:

          猜你喜欢
          • 2019-09-07
          • 2015-09-11
          • 2012-12-09
          • 2019-07-01
          • 2012-07-10
          • 2017-11-04
          • 2020-09-23
          相关资源
          最近更新 更多