Laravel 迁移未连接 AWS-RDS postgres(找不到驱动程序...)。 PDO 已安装。怎么解决呢?

标签 laravel postgresql amazon-ec2 migration amazon-rds

我正在使用带有 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/

相关文章:

mysql - Laravel 4 独家事务更新和选择

postgresql - Azure Postgresql 数据库诊断设置中看不到事件中心命名空间

postgresql - 如何使用 GUI 在 heroku 上查看 PostgreSQL 数据库?

laravel - 如何为自定义数据透视表设置默认属性值?

laravel - 如何在用户注册时在 Laravel 中自动设置随机字符串 ID

php - react : Preserve cookies when redirecting to sub-domain

PHP,函数中的数据库连接。是否必须单独连接?

amazon-web-services - 通过亚马逊弹性负载均衡器的 ssl 证书

amazon-web-services - 如何让 AWS Lambda 在 EBS 快照完成时触发

TOMCAT - 无法访问管理器应用程序