Я думаю, у меня на компьютере работает PostgreSQL: у меня есть PID, и я вижу, что postgres «прослушивает» порт 5432.
Я пытаюсь создать БД для экспериментов, используя базу данных «Книга», описанную в книге К. Фейли «Visual Quickstart SQL».
Я перепробовал несколько подходов, но не испытывал радости. Последний подход:
$ su postgres
Password:
postgres@piglet:/etc$ createdb books
createdb: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
postgres@piglet:/etc$
Я не уверен, что я бью стену паролями или разрешениями, или что-то еще. Я бы приветствовал некоторые предложения. Заранее спасибо!
Если PostgreSQL работает и прослушивает порт 5432 в соответствии с netstat
, но при запуске psql
выдается сообщение об ошибке, подобное:
psql: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
, тогда, скорее всего, проблема в том, что вы используете psql
из более ранней версии PostgreSQL, которая также установлена в вашей системе. Эта версия, вероятно, настроена на использование другого unix_socket_directory
.
Лучше всего установить переменную среды PATH
так, чтобы она указывала на каталог, содержащий правильные версии psql
, createdb
и т. Д., Предшествующие старым.
Альтернативно, вы можете использовать TCP / IP-соединения, явно указав -h localhost
, например:
psql -h localhost ...
(и, таким образом, createdb -h localhost ...
). Это приведет к тому, что вы будете использовать старые версии команд createdb
, psql
и т. Д., Поэтому лучше просто установить PATH
. То же самое относится и к использованию -h
для установки пути к сокету Unix, что в некоторой степени является расширенной опцией.
Исправьте переменную окружения PATH
, и все будет хорошо. Вы можете временно проверить это с помощью чего-то вроде следующего, где вы замените /usr/pgsql-9.2/bin
на каталог bin
в вашей установке PostgreSQL 9.2:
export PATH=/usr/pgsql-9.2/bin:$PATH
psql
Если это сработает, вам нужно сделать постоянное изменение путем редактирования /etc/environment
, вашего .bash_profile
или других соответствующих файлов настроек. Ищите «ubuntu постоянно установлен PATH» для получения дополнительной информации.