Я пытаюсь подключиться к PostgreSQL с PHP на Heroku. Для упрощения я попробовал:Heroku PHP pgconnect - аутентификация пароля для пользователя
function pg_connection_string_from_database_url() {
extract(parse_url(getenv("DATABASE_URL")));
return "user=$user password=$pass host=$host sslmode=require dbname=" . substr($path, 1);
}
$pg_conn = pg_connect(pg_connection_string_from_database_url());
я получаю эту ошибку:
FATAL: password authentication failed for user
Я пробовал:
- соединяясь с теми же учетными данными с помощью Navicat: работает
- Подключение к локальная база данных pgsql с использованием PHP: работает
- Подключение с теми же учетными данными из C LI: works
Это заставляет меня думать, что PHP должен делать что-то с паролем. Я нашел некоторые вещи о MD5 в Интернете, но не могу найти ничего конкретного.
Любая идея, как исправить это?
Я забыл упомянуть, что я подключаюсь из (хобби-разработчика Heroku) к базе данных postgres в другом приложении Heroku (производство). Приведенный выше код действительно работает при подключении к локальной БД. – JeroenJ
Ну, значит, ваш 'DATABASE_URL', возможно, ошибается, или вам нужно читать из другого env var, который имеет правильные учетные данные? – dzuelke
dzuelke, не могли бы вы попробовать, если его также можно подключить к этой базе данных, если вы запустите этот код локально? (вне курса с правильным DATABASE_URL var) – JeroenJ