Назад | Перейти на главную страницу

Я не могу правильно настроить Postgres

Я потратил довольно много времени на борьбу с этим обновлением 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 для глобального использования.