Я выполнял базу данных Postgresql v9.6, и я перезагрузил, но теперь она не запустится. Ничто, кажется, не работает. Какая-либо идея?
Я пытаюсь выполнить своего Django Server:
django.db.utils. OperationalError: не мог соединиться с сервером: Соединение, которому отказывают в сервере, работает на хосте "localhost" (127.0.0.1) и принимает соединения TCP/IP на порте 5432?
Я попробовал к следующим командам:
$ sudo /etc/init.d/postgresql restart
* Restarting PostgreSQL 9.6 database server * Failed to issue method call: Unit postgresql@9.6-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.6-main.service' for details.
$ sudo service postgresql start
* Starting PostgreSQL 9.6 database server * Failed to issue method call: Unit postgresql@9.6-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.6-main.service' for details. [fail]
(env) dominic@dom-Inspiron-7559:~/Desktop/Project
$ systemctl status postgresql@9.6-main.service
Failed to issue method call: No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/systemd1/unit/postgresql_409_2e6_2dmain_2eservice
$ pg_config --version
PostgreSQL 11.2 (Ubuntu 11.2-1.pgdg14.04+1)
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.6 main 5432 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
$ sudo pg_ctlcluster 9.6 main start
Failed to issue method call: Unit postgresql@9.6-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.6-main.service' for details.
$ sudo systemctl daemon-reload
Править:
$ ps uxa|grep postgres
dominic 13786 0.0 0.0 15952 2304 pts/0 S+ 17:18 0:00 grep --color=auto postgres
/var/log/postgresql$ sudo энергия postgresql-9.6-main.log.1
2019-03-16 16:15:26.224 EDT [7265] modadmin@mod LOG: could not receive data from client: Connection reset by peer
2019-03-17 15:08:10.290 EDT [12791] modadmin@mod LOG: could not receive data from client: Connection reset by peer
2019-03-17 15:16:39.060 EDT [17891] modadmin@mod LOG: could not receive data from client: Connection reset by peer
Я ничего не вижу с сегодняшнего дня..?
Dbus является решением межпроцессного взаимодействия (IPC), используемым широко в дистрибутивах Linux. Также systemd использует его. Однако это независимо от PostgreSQL.
systemctl status
команды показывают сообщение об ошибке, связанное, скорее всего, со что systemctl
команда, как приложение командной строки, не может связаться с Вашим systemd
. Systemd является главным главным демоном Вашей системы, справляясь со всеми фоновыми сервисами, включая PostgreSQL.
Таким образом, у Вас есть по крайней мере два, независимые проблемы. Отметьте, такие случаи редки на Linux, скорее всего, у Вас была неудача. Я надеюсь, у Вас есть некоторый тип резервного копирования, если Ваш Postgresql имел важные данные в нем.
Вероятно, фиксация Вашего PostgreSQL является более важным. Что хорошо видимо, что Ваш PostgreSQL не запускался (если он имел, Ваш django, возможно, соединил его). Вы можете вручную, и более непосредственно проверять его если a ps uxa|grep postgres
не дает выполнимого результата.
Проверьте конец своего журнала postgresql, который наиболее вероятен в /var/log/postgresql.log
. Это возможно, что Ваша база данных повреждена. Если это так, Вы поражены - за postgresql, просто никакое средство восстановления базы данных низкого уровня никогда не разрабатывалось. У Вас должны всегда быть хорошие резервные копии. Существует некоторый хитрый путь с тем, что можно восстановить определенные данные, но это хорошо по пределам этого сообщения.
Всегда имеет по крайней мере одно резервное копирование от всего то, что важно в Вашей системе. Это не должно быть полезное, высокоуровневое, эффективное решение, но это должно существовать. Например, ежедневная газета pg_dump yourDjangoDb|pxz -9ve - >/var/backups/djangopg.xz
довольно хорошо для рабочей станции разработки.
Расширьте свой вопрос с помощью конца Вашего postgresql.log
.
О dbus, чтобы знать, работает ли услуга все еще, выполняются ps uxa|grep dbus-daemon
команда. Если это не работает, у Вас есть проблема. Если это работает, Вы можете Dbus не иметь никаких действительно важных персистентных данных сам по себе, таким образом, Вы сможете сделать более "прямые" способы сделать его работающий снова. Если это не работает, то существует некоторая проблема связи, которая, скорее всего, связана с некоторыми сокетами Unix в /run
. Так или иначе a strace systemctl status dbus.service
мог помочь много.