SQLSTATE [HY000] [2002] Соединение отклонено при развертывании приложения laravel в Heroku - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь развернуть приложение laravel на heroku. Я успешно сделал это уже с одним из моих приложений, но здесь я получаю следующую ошибку при запуске команды heroku запуска php artisan migrate:

In Connection.php line 664:

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from 
information_schema.tables where table_schema = todolist and 
table_name = migrations)

In Connector.php line 67:

SQLSTATE[HY000] [2002] Connection refused

Я проверил, что для database.php и .env совпадают конфигурации:

.env:

DB_CONNECTION=pgsql
DB_HOST=foo.amazonaws.com
DB_PORT=5432
DB_DATABASE=database
DB_USERNAME=user    
DB_PASSWORD=password

database.php:

return [

    'default' => env('DB_CONNECTION', 'pgsql'),

      'connections' => [


        'pgsql' => [
            'driver' => 'pgsql',
            'host' => env('DB_HOST', 'foo.amazonaws.com'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'database'),
            'username' => env('DB_USERNAME', 'user'),
            'password' => env('DB_PASSWORD', 'password'),
            'charset' => 'utf8',
            'prefix' => '',
            'schema' => 'public',
            'sslmode' => 'prefer',
        ]

]

Я прочитал несколько похожих сообщений и попытался изменить DB_HOST с 127.0.0.1 на localhost, но он не работал.

Значения базы данных были переданы heroku после того, как я использовал postgres для своей базы данных. Я что-то здесь упускаю? Все советы приветствуются.

1 Ответ

0 голосов
/ 02 августа 2018

Файл .env игнорируется git, поэтому его нельзя будет отправить в Heroku. Чтобы решить вашу проблему, учетные данные должны быть в файле database.php так же, как у вас:

'pgsql' => [
      'driver' => 'pgsql',
        'host' => env('DB_HOST', 'ec2-12-34-56-789.compute-1.amazonaws.com'),
        'port' => env('DB_PORT', '5432'),
        'database' => env('DB_DATABASE', 'dbXXXXXXXXXXXX'),
        'username' => env('DB_USERNAME', 'XXXXXXXXXXXXXX'),
        'password' => env('DB_PASSWORD', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'public',
        'sslmode' => 'prefer',
    ]

Пароль должен быть длиной 64 символа, поэтому я бы сказал, может быть, дважды проверьте значения и затем нажмите изменения еще раз. После успешного пуша запустите:

$ heroku run php artisan migrate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...