Руководство администратора по PostgreSQL | ||
---|---|---|
Предыдущий | Глава 12. Поиск неисправностей | Следующий |
После запуска postmaster, попытка подключиться к нему из клиентского приложения может потерпеть неудачу по различным причинам. Примеры сообщений ошибок показанных здесь для клиентов, основаны на новых версиях libpq --- клиенты, основанные на других библиотеках интерфейса могут выдавать другие сообщения более или менее информативные.
connectDB() -- connect() failed: Connection refused Is the postmaster running (with -i) at 'server.joe.com' and accepting connections on TCP/IP port '5432'?В общем это - "Я не могут найти postmaster с которым можно поговорить". Оно появляется при попытки соединения TCP/IP, или при попытки соединения через Unix-сокет к локальному postmaster:
connectDB() -- connect() failed: No such file or directory Is the postmaster running at 'localhost' and accepting connections on Unix socket '5432'?Последняя строка полезна для той проверки, что клиент пытается подключиться к тому к чему предполагает. Это фактически не запущенный postmaster, это ядро выводит обычно или "Connection refused" или "No such file or directory", как показано. (Особенно важно понимать это "Connection refused" в том контексте что это не значит что postmaster получил твой запрос на соединение и отверг его --- этот случай выводит другое сообщение, какое показано ниже.) Другие сообщения об ошибках, типа "Connection timed out", могут указывать на более принципиальную проблему, подобно недостатку сетевой подключаемости.
No pg_hba.conf entry for host 123.123.123.123, user joeblow, database testdbЭто то, что ты наиболее часто получаешь, если произошёл контакт с postmaster, но он не хочет говорить с тобой. Как написано в сообщении, postmaster отверг соединение, потому что не нашёл записи авторизации в своем pg_hba.conf файле конфигурации.
Password authentication failed for user 'joeblow'Сообщения, подобно этому, указывают, что на контакт с postmaster, и он бы хотел поговорить с тобой, но пока ты не прошёл авторизацию, указанную в pg_hba.conf файле. Проверь передаваемый пароль, или проверь программное обеспечение Kerberos или IDENT, если жалобы появляются только с этими типами аутентификации.
FATAL 1: SetUserId: user 'joeblow' is not in 'pg_shadow'Это другой вариант неудачной аутентификации: команда Postgres create_user не может быть выполнена для заданного имени пользователя.
FATAL 1: Database testdb does not exist in pg_databaseТакое имя базы данных вне контроля postmaster. Заметим, что если ты не указал имя базы данных, по умолчанию оно будет твоим именем пользователя Postgres, которое может быть, а может и нет нужным тебе.
Предыдущий | Начало | Следующий |
Поиск неисправностей | В начало главы | Сообщения отладки |