Я успешно установил PostgreSQL 9.3 из репозитория APT на 2 виртуальных машинах, работающих под управлением Ubuntu 12.04 и 13.04 ... однако я не могу правильно установить его на моем хост-компьютере с Ubuntu 12.04.
Установка (на этот раз) прошла нормально, но, возможно, произошла ошибка, которую я не понимаю:
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ...
Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data /var/lib/postgresql/9.3/main
locale en_US.UTF-8
port 5432
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
Затем я пытаюсь добавить себя в качестве пользователя PostgreSQL, но получаю следующее:
createuser: 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"?
Я не вижу PostgreSQL, работающего в системном мониторе, и в папке / var / run / postgresql / нет файла ... полностью пустого.
РЕДАКТИРОВАТЬ: На виртуальных машинах есть файл в / var / run / postgresql / называется 9.3-main.pid
В файле журнала хост-машины ничего не находится / var / log / postgresql
Итак ... что здесь происходит, что не происходит в моей виртуальной машине? Как я уже сказал, другие установки на виртуальных машинах, в том числе PostGIS и PGAdmin, оказались идеальными ... не знаю, почему этот хост-компьютер не проходит ...
источник
/var/run/postgresql
каталог? Однажды после успешной установки эта папка отсутствовала на моей машине. Что конфиг говорит о том, какой каталог он должен использовать?postgresql.conf
в каталоге config, который согласно вышеизложенному, находится/etc/postgresql/9.3/main
. Вы также должны посмотреть в лог-файлы, вероятно, в/var/log/postgresql
.Ответы:
Мои настройки локали не были правильно настроены при установке PostgreSQL. Очистка и переустановка не помогли. Я следовал инструкциям здесь, и это помогло мне.
Основные части связанной информации воспроизводятся ниже:
Проблема проявила себя следующим образом:
Первое было очень легко решить, выполнив:
... и выбирая предпочтительные локали.
Но после этого PostgreSQL все равно отказался запускаться. Это связано с тем, что процесс установки пытался создать кластер во время установки, но из-за неправильных локалей это не было сделано. Поэтому мы должны повторить этот шаг, выполнив:
(Для версии 9.3 PostgreSQL)
После этого шага PostgreSQL без проблем запускается через
источник
pg_createcluster
говорит вам , что кластер уже существует вам нужно бросить его первым (это будет стереть все данные в нем, поэтому убедитесь , что у вас есть резервная копия)pg_dropcluster 9.3 main
.Надеюсь, вы уже решили эту проблему, но я столкнулся с подобной проблемой, которая, кажется, имеет другой источник, и, возможно, мой опыт поможет, если у вас все еще есть проблема.
Моя проблема с 9.3 в Ubuntu связана с тем, что dir сокета является временным dir in / run. По сути, сценарий init.d должен позаботиться о создании dir сокета в / run / postgresql, если он не существует во время действия запуска. Это всегда будет положение вещей после перезагрузки.
Проблема, однако, в том, что сценарий init.d завершит работу перед выполнением действия start, если dir сокета не существует. Это связано с тем, что вызов pg_lsclusters завершится неудачей без dir сокета, что, в свою очередь, не позволяет начальному действию создавать dir сокета.
Я не выяснил, что является лучшим решением, но если я переместил логику для создания dir сокета из действия start до вызова pg_lsclusters, я смогу без проблем запустить сервер после перезагрузки.
Вот часть начального действия, которая обрабатывает создание dir сокета:
Я опубликую обновление, если мне станет ясна основная причина этого, потому что это явно не может быть ожидаемым поведением.
ДОПОЛНЕНИЕ:
Я думаю, что причина, по которой я столкнулся с этой проблемой, заключается в том, что у меня не было хорошего значения, настроенного для unix_socket_directories . В 9.2 эта опция конфигурации была unix_socket_directory, которую я удалил, а не переключился на unix_socket_directories. Поскольку я установил значение для unix_socket_directories, у меня не было проблем с запуском сервера.
источник
У меня было несколько проблем с файлом сокетов, в вашем случае /var/run/postgresql/.s.PGSQL.5432
Убедитесь, что каталог / var / run / postgresql существует и доступен для записи перед запуском postgresql для получения дополнительной информации см. это обсуждение .
также при подключении используйте флаг -h:
и посмотрим, разрешит ли это это.
источник
Кажется, это решает проблему в Ubuntu:
Отредактируйте postgresql.conf:
Сейчас делаю
service postgresql start
источник
Я новичок в PSQL, но я решил проблему, отредактировав файл start.conf. Я прокомментировал настройку «auto» для управления сервером вручную, но для этого нужно указать значение: auto, manual или отключено.
ЭГДС.
источник
С моей стороны сценарий запуска неверен. Файлы конфигурации установлены в /etc/postgresql/9.3/main, но скрипт /usr/share/postgresql-common/init.d-functions ищет в
Заменить эту строку на
источник
Все,
после некоторых раскопок я нашел (а) решение здесь:
http://ubuntuforums.org/showthread.php?t=869080
Который содержал эти инструкции:
Запустите в терминале:
Теперь мой сервер запущен и работает !!!
РЕДАКТИРОВАТЬ : после перезагрузки сервер все еще не работает ...
Любые мысли о том, почему мне нужно было запустить это приветствуются!
источник
/etc/postgresql/9.3/main/postgresql.conf