php - SQLSTATE[HY000] [2002] 尝试将 Laravel 数据库连接到 Heroku 时连接被拒绝

标签 php mysql laravel heroku

所以我在 Heroku 上有一个网站,只要我不访问需要数据库连接的页面,该网站就可以正常加载。当我登陆其中一个页面时,会发生什么情况,我收到此错误:

Connector.php 第 55 行中的 PDOException:SQLSTATE[HY000] [2002] 连接被拒绝

我正在使用db4free.net尝试访问 MySQL 数据库。这是我的database.php 文件。 ****** 掩盖了实际值。

'default' => env('DB_CONNECTION', 'mysql-production'),

'mysql-production' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'db4free.net'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'en*******'),
            'username' => env('DB_USERNAME', '*******'),
            'password' => env('DB_PASSWORD', '*******'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

这是我的环境文件:

APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:tUWa6AteuAOfEAh/IKx3c13tJEzSmS4La8QdKlEgByQ=
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=enviro-2
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

env 文件被 git 忽略。

在尝试 db4free.net 之前,我尝试按照本文中的步骤操作 https://mattstauffer.com/blog/laravel-on-heroku-using-a-postgresql-database/但我仍然有完全相同的问题。我还在 Heroku 配置变量中设置了 APP_KEY 以匹配我的 env 文件中的变量。

有人知道我为什么会收到此错误吗?

最佳答案

.env 文件中的连接详细信息不正确。 您应该在 .env 文件和 database.php 文件中写入您的凭据详细信息

关于php - SQLSTATE[HY000] [2002] 尝试将 Laravel 数据库连接到 Heroku 时连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50670590/

相关文章:

php - 在哪里放置连接多个表的 SQL 查询?

php - 在 ajax 请求 Laravel 后显示 flash 和错误消息

php - 在where子句中使用数组,其中检查字段包含逗号分隔的单词

html - 如何在laravel中使用excel export在一个单元格中显示多行数据

laravel - Laravel 中的关系查询

php - "Automatic cleaning is not available/necessary with this backend"是什么意思? (对于内存缓存)

php - MySQL 按随机顺序但显示不同的前 5 个结果?

PHP MYSQL "more info"按钮

php - 数据库错误: MySQL Error Number: 1064

mysql - 用新行 mysql 替换第一个空格