$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04 LTS Release: 18.04 Codename: bionic
Установил PostgreSQL 10 -
$ apt list --installed | grep -i postgres postgresql-client-10/bionic,now 10.3-1 amd64 [installed] postgresql-client-common/bionic,bionic,now 190 all [installed,automatic] postgresql-common/bionic,bionic,now 190 all [installed,automatic] postgresql-server-dev-10/bionic,now 10.3-1 amd64 [installed] postgresql-server-dev-all/bionic,bionic,now 190 all [installed]
И то, serviceи другое systemctlсразу же, без сообщений, но не запускает процесс postgres -
$ sudo service postgresql restart $ sudo systemctl restart postgresql
Я полностью в темноте, так как нет ни конфа, ни лога -
$ ll /etc/postgresql total 8 drwxr-xr-x 2 root root 4096 Feb 8 12:26 ./ drwxr-xr-x 95 root root 4096 May 6 04:11 ../ $ ll /var/log/postgresql/ total 8 drwxrwxr-t 2 root postgres 4096 Feb 8 12:26 ./ drwxrwxr-x 10 root syslog 4096 May 6 04:10 ../
То, что там происходит? Любой указатель будет высоко ценится.
Изменить: что еще хуже, PostgreSQL 10 является единственным перечисленным пакетом в Ubuntu 18.04, нет очевидного «подходящего» способа установки более старой версии PostgreSQL
Вы смотрели на вывод `systemctl status postgresql`?
dsstorefile1 6 лет назад
0
`$ sudo systemctl status postgresql ● postgresql.service - СУБД PostgreSQL Загружен: загружен (/lib/systemd/system/postgresql.service; включен; предустановка поставщика: включен) Активен: активен (выход) с Sun 2018-05-06 06: 19:47 UTC; 2 ч. 13 мин. Назад Процесс: 15349 ExecStart = / bin / true (код = выход, статус = 0 / УСПЕХ) Основной PID: 15349 (код = выход, статус = 0 / УСПЕХ) май 06 06:19:47 myapp systemd [1] : Запуск СУБД PostgreSQL ... 6 мая 06:19:47 myapp systemd [1]: Запуск СУБД PostgreSQL.
Jerry Ji 6 лет назад
1
Кто / почему отклонил этот вопрос?
Jerry Ji 6 лет назад
1
Отсутствие ошибки systemctlи тот факт, что postgresqlслужба существует, сбивают с толку: это потому, что postgresqlэто «зонтичная» служба, которая запускает каждый экземпляр postgresql, установленный и настроенный. В вашем случае у вас в настоящее время нет такого экземпляра, но это хорошо, если дело касается postgresqlсервиса. В наиболее общем случае у вас может быть несколько разных версий PostgreSQL, работающих одновременно (из разных пакетов postgresql-<version>), и несколько экземпляров одной и той же версии (из одного пакета).
Я бы посоветовал проверить ваши экземпляры PostgreSQL с помощью, pg_lsclustersа не systemctl. Смотрите также, pg_ctlclusterчтобы контролировать их.
1
Mr.Robot
05/13/2018
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это для postgresql 10 и Ubuntu 18.04, и может работать или не работать для других версий. PS: Если вы в последнее время вмешивались в языковые настройки, пожалуйста, скажите мне, потому что может быть связь с ошибкой postgres
Вчера у меня возникла точно такая же проблема, и никто во всем Интернете не мог мне помочь, поэтому я стал мошенником ... И это сработало!
Прежде всего, если у вас есть какая-либо база данных с данными, которые вы хотите сохранить, я не могу вам помочь; вам нужно будет найти способ сделать резервную копию всех ваших данных.
Теперь перейдем к реальным шагам (это именно то, что я сделал, шаги между [ ]вами могут пропустить ):
sudo apt удалить --purge postgres * [sudo apt удалить --purge pg *] sudo apt autoremove sudo apt autoclean sudo apt clean [sudo find / -name "* postgres *" -type f -delete] -> это может удалить любой резервное копирование
Теперь убедитесь, что у вас есть эта строка в /etc/apt/sources.list
Если нет, просто добавьте его ... Давайте продолжим:
обновление sudo apt обновление sudo apt sudo apt install -y postgresql-10 postgresql-contrib postgresql-client [sudo apt install -y postgresql-server pgadmin3] -> это может понадобиться для metasploit [sudo reboot]
Теперь вы должны проверить, были ли созданы необходимые каталоги: /etc/postgresql/10/main-> файлы конфигурации /usr/lib/postgresql/10/bin-> скрипты и исполняемые файлы /var/run/postgresql-> временные файлы /var/lib/postgresql/10/main-> папки
Если что-то из этого не существует, я не могу вам помочь. Вы также должны убедиться, что пользователь postgresсуществует. Давайте продолжим:
shopt -s histappend HISTSIZE=1000 HISTFILESIZE=2000 shopt -s checkwinsize case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='$\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='$\u@\h:\w\$ ' fi unset color_prompt force_color_prompt if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi source /etc/environment
\du+-> список пользователей postgresql \l-> список баз данных postgresql createuserи dropuser-> самоочевидность createdbи dropdb-> самоочевидность
ЭКСТРА: МЕТАСПЛОЙТ
Если кому-то, читающему это, нужен postgresql для metasploit, вы можете перейти по этой ссылке (она для 16.04, но отлично работает в 18.04), однако есть ошибка: в какой-то момент вам нужно будет выполнить это: rvm --default use ruby-$@metasploit-framework gem pristine --all Вместо предложенного: rvm --default use ruby-$@metasploit-framework
Кроме того, если у вас возникнут проблемы с установочной частью пакета ruby, эта команда может спасти вам жизнь:gem pristine --all
sudo apt удалить --purge pg *
Jerry Ji 6 лет назад
0
ты пробовал это?
Mr.Robot 6 лет назад
0
Да, и вот как я поймал вашу опечатку. Кстати, спасибо за ваши подробные шаги, я хотел бы иметь достаточно репутации, чтобы проголосовать за ваш ответ
Jerry Ji 6 лет назад
0
К вашему сведению, чтобы проверить установку, используя `psql`:` sudo -u postgres psql postgres`
Daniel 6 лет назад
0
0
user902416
Была такая же проблема здесь. Удалил все, что касается postgres (apt remove --purge), удалил все оставшиеся каталоги из postgres 9 и снова переустановил postgres 10. Затем появились файлы конфигурации в / etc / postgresql / и база данных могла быть запущена. НТН.
0
Daniel
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это для postgresql 10 и Ubuntu 18.04, и может работать или не работать для других версий.
Следуйте ответу, предоставленному, Mr Robotкроме как признать:
Пользователь и группа есть postgres, поэтому команды должны использоватьchown -R postgres:postgres ...
Я не уверен, что случилось, /lib/systemd/system/postgresql.serviceхотя каким-то образом /lib/systemd/system/postgresql@.serviceуправляет кластером PostgreSQL? В любом случае, я думаю, что он уже работал к тому времени, когда я следовал инструкциям, и после перезагрузки (что должно быть ненужным?) Он вернулся в режим онлайн, так что я думаю, что это работает.
0
Patric Bechtel
Просто используйте
service postgresql@10-main start
и это работает. Не знаю точно, почему это происходит только в 18.04 (я проверил 17.10, и этого не происходит), но «зонтик», похоже, не может перечислить установленные экземпляры.