2010-08-31 3 views
1

У меня есть сервер с postgresql, установленный на пользователя postgres. Когда я это сделаю:Проблема с pg_connect на localhost

su - postgres 
[entering the password] 
psql 

Я могу выполнить запросы в базе данных, что отлично работает.

Однако из моего PHP скрипт (работает на свой собственный счет):

$dbconnection = pg_connect("host=localhost port=5432 user=postgres password=XXXXXXX "); 

(пароль вычеркнуты конечно)

тогда я получаю сообщение:

PHP Предупреждение: pg_connect(): Невозможно подключиться к серверу PostgreSQL: FATAL: аутентификация пароля для пользователя «postgres» FATAL: аутентификация пароля для пользователя «postgres» не была выполнена в /home/username/script.php в строке 18

Я пробовал много вариаций в строке входа, но я продолжаю получать одно и то же сообщение. Любые идеи, как я мог бы попытаться решить это?

ответ

0

Какова текущая конфигурация для pg_hba.conf? И вы установили пароль для базы данных rol "postgres"? su - postgres для пользователя Linux «postgres», а не для роли базы данных «postgres». Если вы можете запустить psql без ввода пароля, похоже, что pg_hba.conf использует «доверие», а не «пароль» даже лучшего «md5». Или вы создали файл .pgpass?

+0

Да! Я действительно запутал пользователя linux «postgres» и роль базы данных «postgres». Я знал, что они там разные, и создавали их как при установке, так и в итоге добавляли пароли. Он работает сейчас. Благодаря! – openbas2

1

Ваши сообщения не могут прослушивать сетевой интерфейс, но вместо этого в гнездо файловой системы. Что делать, если вы полностью исключаете host =/port =?

Кроме того, если вы знаете socketpath (и это не по умолчанию), вы можете использовать его в качестве хоста = аргумент

+0

отказ от хоста и порта, к сожалению, не решает проблему. Только вместо FATAL: пароль аутентификации не удалось для пользователей «Postgres» я получаю: FATAL: Ident Ошибка аутентификации для пользователя «Postgres» я не знаю, о socketpath, но установка по умолчанию из ubuntu, и я использовал большинство настроек по умолчанию во время установки. – openbas2

+0

для меня host = '' works – TomoMiha

-1

Будьте осторожны, следующая строка слишком короткая вызывает указанное сообщение об ошибке («Предупреждение: pg_connect(): Не удается подключиться к серверу PostgreSQL: FATAL: Ошибка аутентификации сверстников для пользователя« halmai »в ...»):

pg_connect("dbname=halmai user=halmai password=halmai");

Однако более полная строка соединения хорошо работает:

pg_connect("host=localhost dbname=halmai user=halmai password=halmai");

Моя среда: php7.0.8.

Смежные вопросы