【发布时间】:2021-11-18 01:47:24
【问题描述】:
我有一个 Laravel 5.8,在我的 macOS 上本地运行 Big Sur 11.4
加载的配置文件
/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' => env('DB_CONNECTION', 'pgsql'),。看看它是如何引用DB_CONNECTION的,但你的名字是DB_LOCAL_CONNECTION?那不匹配。注意:这些是默认设置,您没有显示该特定设置,所以这是一个猜测。 -
@TimLewis : 我的
database.php'default' => env('DB_LOCAL_CONNECTION', 'pgsql'),中有这条线 -
谢谢,这清楚了。这是一个怀疑,但是,是的,看起来没问题。
标签: php laravel macos psql php-7.3