【发布时间】:2021-01-07 16:41:49
【问题描述】:
我正在使用带有 php7.4/NGINX 的 Ubuntu 20.04 EC2 实例,并且 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')
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
【问题讨论】:
-
你的php和nginx重启了吗?
-
是的,我刚刚做了,但我仍然面临这个问题。
-
对不起,我的错。我忘记将 DB_CONNECTION=mysql 更改为 pgsql。现在我有另一个问题 - 超时过期....这是另一个问题,但至少这个问题已经解决了。
-
你能分享你的答案吗?
标签: laravel postgresql amazon-ec2 migration amazon-rds