Я потратил довольно много времени на борьбу с этим обновлением postgresql, но я просто не могу его правильно настроить. Недавно я обновился с 9.0 до 9.1, и я не могу правильно настроить Postgres 9.1.
Я хотел, чтобы он запускался при запуске, поэтому я нашел файл postgres в etc / init.d и заменил его сценарием, поставляемым с исходными файлами (сценарий linux, найденный в /contrib/start-scripts
).
Я изменил только некоторые вещи следующим образом:
# Installation prefix
prefix="/usr/local/pgsql"
# Data directory
PGDATA="/var/lib/postgresql/9.1/main"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="/var/log/postgresql/9.1"
Затем я установил и запустил chkconfig --add postgresql
. Насколько я мог видеть, каталоги rhN, похоже, обновились. Но, к сожалению, Postgresqk не работал, он не запускается или, по крайней мере, я не думаю, что он запускается. Я пропустил шаг?
Кроме того, когда я бегу /usr/local/pgsql/bin/psql
, ошибка говорит:
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
В то время как выполнение команды psql старого сервера, когда она не запущена, дает:
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Что это за каталог сокета домена и нужно ли его менять?
Итак, как мне запустить его, если это поможет, я использую Ubuntu 10.04 LTS.
Наконец, я знаю, что задавать несколько вопросов - это плохой этикет, но я подумал, что было бы грубо задавать еще один вопрос для небольшого вопроса вроде этого: я также хочу сделать так, чтобы, если я введу команду postgres (например, psql) в терминал, он должен запустить новую команду postgres, а не старую, как сейчас. Где мне это изменить?
Спасибо за вашу помощь.
Затем я установил и запустил
chkconfig --add
postgresql
Также нужно включить его:
chkconfig postgresql on
Сервер работает локально и принимает соединения через сокет домена Unix "/tmp/.s.PGSQL.5432"?
Вы начали postgresql
?
$ ps -ef | grep postgre
Что это за каталог сокета домена и нужно ли его менять?
Он содержит сокет домена Unix, сервер которого должен прослушивать соединения от клиентов. Вам не нужно менять (это можно сделать с unix_socket_directory
).
Теперь проблема в том, что мне все еще нужно записать полное расположение каталога при запуске команды. Хм, как мне это исправить.
Добавьте его в $PATH
переменную среды, вставив / добавив строку ниже в ~/.profile
в твоем $HOME
:
export PATH=$PATH:/usr/local/pgsql/bin
Сделайте это с помощью:
$ source ~/.profile
или:
$ . ~/.profile
Вы также можете добавить в /etc/profile
для глобального использования.