簡體   English   中英

Laravel 遷移未連接 AWS-RDS postgres(找不到驅動程序...)。 PDO 已經安裝。 如何解決?

[英]Laravel migrations is not connecting AWS-RDS postgres (could not find driver ...). PDO already installed. How to solve that?

我正在使用 Ubuntu 20.04 EC2 實例和 php7.4/NGINX,Laravel 8.4 指向 AWS 中的 PostgreSQL RDS 實例(無公共訪問權限)。

當我嘗試遷移 ( 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')

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 實例后一切正常。

¯_(ツ)_/¯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM