【问题标题】:PDOException::("could not find driver") - macOS Big Sur, PSQLPDOException::("找不到驱动程序") - macOS Big Sur, PSQL
【发布时间】:2021-11-18 01:47:24
【问题描述】:

我有一个 Laravel 5.8,在我的 macOS 上本地运行 Big Sur 11.4

我检查了phpinfo();我明白了

加载的配置文件

/Applications/MAMP/bin/php/php7.4.12/conf/php.ini.

pdo_pgsql

我检查了/Applications/MAMP/bin/php/php7.4.12/conf/php.ini. 我找到了这些,它们已经被取消注释了。

在phpinfo页面也有体现


最近,我无法成功运行php artisan migrate,我不断收到:

Illuminate\Database\QueryException : 找不到驱动程序(SQL: select * from information_schema.tables where table_schema = public and table_name = migrations and table_type = 'BASE TABLE')

我使用的是psql 而不是 MySQL。

DB_LOCAL_CONNECTION=pgsql
DB_LOCAL_HOST=localhost
DB_LOCAL_PORT=5432
DB_LOCAL_DATABASE=dbName
DB_LOCAL_USERNAME=postgres
DB_LOCAL_PASSWORD=

我是否检查了错误的文件?我还应该检查什么?


@Tim:我根据你的评论添加了这个。

<?php

return [

    'default' => env('DB_LOCAL_CONNECTION', 'pgsql'),

    'connections' => [

        'pgsql' => [
            'driver' => 'pgsql',
            'host' => env('DB_LOCAL_HOST', '127.0.0.1'),
            'port' => env('DB_LOCAL_PORT', '5432'),
            'database' => env('DB_LOCAL_DATABASE', 'db'),
            'username' => env('DB_LOCAL_USERNAME', 'user'),
            'password' => env('DB_LOCAL_PASSWORD', '123'),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],

    ]

];

@大脑

这是给你的。我尝试像这样将 CLI 版本更新到 7.3,并检查该 7.3 的 ini 文件,它已启用...请参阅下面的步骤

brew install php@7.3
cd /usr/local/etc/php/7.3/
code php.ini


➜  7.3 cat php.ini | grep pgsql                                                                                          
extension=pdo_pgsql                                                                                                      
extension=pgsql                                                                                                          
; http://php.net/pgsql.allow-persistent                                                                                  
pgsql.allow_persistent = On                                                                                              
; http://php.net/pgsql.auto-reset-persistent                                                                             
pgsql.auto_reset_persistent = Off                                                                                        
; http://php.net/pgsql.max-persistent                                                                                    
pgsql.max_persistent = -1                                                                                                
; http://php.net/pgsql.max-links                                                                                         
pgsql.max_links = -1                                                                                                     
; http://php.net/pgsql.ignore-notice                                                                                     
pgsql.ignore_notice = 0                                                                                                  
; Unless pgsql.ignore_notice=0, module cannot log notice message.                                                        
; http://php.net/pgsql.log-notice                                                                                        
pgsql.log_notice = 0

【问题讨论】:

  • 我昨天遇到了类似的问题。尝试使用端口 5433。
  • 不管端口是5432还是5433,错误是说你没有驱动可以使用pgsql,并不是说连接不上数据库.
  • 一个可能的问题是您的default 连接没有使用您的.env 变量:'default' =&gt; env('DB_CONNECTION', 'pgsql'),。看看它是如何引用DB_CONNECTION 的,但你的名字是DB_LOCAL_CONNECTION?那不匹配。注意:这些是默认设置,您没有显示该特定设置,所以这是一个猜测。
  • @TimLewis : 我的 database.php 'default' =&gt; env('DB_LOCAL_CONNECTION', 'pgsql'), 中有这条线
  • 谢谢,这清楚了。这是一个怀疑,但是,是的,看起来没问题。

标签: php laravel macos psql php-7.3


【解决方案1】:

如果扩展名为:pdo_pgsql.sopgsql.so 在此处且未注释,则应检查您的 php.ini 文件。

【讨论】:

  • 我看到这些行 extension=pgsql.soextension=pdo_pgsql.so 已经被取消注释了。我签入了/Applications/MAMP/bin/php/php7.4.12/conf/php.ini我检查了错误的文件吗?
猜你喜欢
  • 2016-09-03
  • 2022-01-23
  • 2017-06-07
相关资源
最近更新 更多