我正在使用带有 php7.4/NGINX 的 Ubuntu 20.04 EC2 实例,Laravel 8.4 指向 AWS 中的 PostgreSQL RDS 实例(无公共(public)访问)。
当我尝试迁移 (php artisan migrate
) 时,出现以下错误:
Illuminate\Database\QueryException
could not find driver (SQL: select * from information_schema.tables where table_schema = xxxxx-db-prod and table_name = migrations and table_type = 'BASE TABLE')
Similar questions SO 中的要点是如何安装或启用 PostgreSQL 驱动器。但我已经安装并启用了它。
运行 php -i
这是我得到的:
pdo_pgsql
PDO Driver for PostgreSQL => enabled
PostgreSQL(libpq) Version => 12.2 (Ubuntu 12.2-4)
pgsql
PostgreSQL Support => enabled
PostgreSQL(libpq) Version => 12.2 (Ubuntu 12.2-4)
PostgreSQL(libpq) => PostgreSQL 12.2 (Ubuntu 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-8ubuntu1) 9.3.0, 64-bit
Multibyte character support => enabled
SSL support => enabled
Active Persistent Links => 0
Active Links => 0
Directive => Local Value => Master Value
pgsql.allow_persistent => On => On
pgsql.auto_reset_persistent => Off => Off
pgsql.ignore_notice => Off => Off
pgsql.log_notice => Off => Off
pgsql.max_links => Unlimited => Unlimited
pgsql.max_persistent => Unlimited => Unlimited
运行php -m
这是我得到的:
...
pcntl
pcre
PDO
pdo_pgsql
pgsql
Phar
...
我已经在同一个 Ubuntu 20.04 EC2 实例中测试了指向本地 PostgreSQL 实例的同一个实例点,并且它可以工作。看来这不是 Laravel 的问题。似乎与 RDS-PostgreSQL 连接有关。
有人知道与此问题相关的任何线索吗?
更新
我注意到问题的根源是 DB_CONNECTION
值。我忘记在 .env
文件中将 mysql
更改为 pgsql
:
DB_CONNECTION=pgsql
最佳答案
我遇到了完全相同的问题,重新启动 ec2 实例后一切正常。
́_(ツ)_/́
关于Laravel 迁移未连接 AWS-RDS postgres(找不到驱动程序...)。 PDO 已安装。怎么解决呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63994765/