SQLSTATE [HY000] [2002]尝试将连接laravel数据库添加到Heroku时拒绝连接

So I have a site on Heroku, which loads fine as long I don't go to a page that requires a database connection. What happens when I do land on one of those pages, is I get this error:

PDOException in Connector.php line 55: SQLSTATE[HY000] [2002] Connection refused

I'm using db4free.net to try to access a MySQL database. This is my database.php file. The ****** masking the actual values.

'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,
        ],

This my env file:

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

The env file is ignored by git.

Prior to trying db4free.net I tried following the steps in this article https://mattstauffer.com/blog/laravel-on-heroku-using-a-postgresql-database/ but I still have the exact same problem. I also set the APP_KEY in the Heroku config variables to match the one in my env file.

Anyone have any ideas on why I get this error?

duanjiaonie6097
duanjiaonie6097 我有类似的问题和相同的错误。它没有传递正确的连接值
大约 2 年之前 回复
dongxie3963
dongxie3963 你在我的.env文件中引用了我的APP_ENV=局部变量吗?它设置为本地数据。
大约 2 年之前 回复
doulongti5932
doulongti5932 如果程序决定采用本地或远程数据,您是否有交换机?再次检查您的连接数据。
大约 2 年之前 回复

1个回答



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

展开原文

原文

your connection details in .env file in incorrect. you should write your credentials details in .env file as well as database.php file

dongtong5242
dongtong5242 是的,结果证明是问题所在。 似乎在我的database.php中变量指向我没有意识到的env文件。 所以我从使用它的任何变量中删除了env()并解决了它。 谢谢
大约 2 年之前 回复
dongzan1970
dongzan1970 env('DB_HOST','db4free.net')这一行意味着从env文件读取主机,如果它不存在,请参阅下一个参数。 如果没有什么帮助只需删除env()并写入相应的每一行'host'=>'db4free.net',依此类推
大约 2 年之前 回复
doulu6929
doulu6929 当它上传到Heroku的服务器时,不正确的细节会有所不同,我有点困惑吗? 我问,因为当我把主人推到Heroku时,我没有推动.env文件。
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐