установка postgresql: каталог данных initdb, не пустой?

В моей части мира термин "возврат" обычно используется при разговоре о сервисах, тогда как Вы "перезагружаете" сервер или "перезапускаете" приложение или процесс.

Объяснение, которое мне первоначально дали для терминологии, состоит в том, что сервис остановлен и перезапущен довольно быстро. т.е. Бросок это вниз и позволило ему возвратиться, как возврат шара. Перезагрузка сервера (исторический термин) занимает значительно более длительное время (обычно), так не может действительно быть назван возвратом. Приложения не становятся возвращенными или перезагруженными, таким образом, они перезапущены.

17
задан 7 July 2016 в 20:51
4 ответа

Initdb следует запускать только один раз. Он создаст каталог, в котором вы будете хранить файлы конфигурации и (обычно) саму базу данных. Очевидно, вы уже это сделали; otherwrise не будет никакого pg_hba.conf для редактирования.

Так что просто не запускайте postgresql initdb снова, если вы не выполняете полную переустановку.

18
ответ дан 2 December 2019 в 20:28

У меня была такая же проблема при использовании PostgreSQL 9.3 на CentOS 6.

Я удалил папку /var/lib/pgsql/9.3/data, а затем повторно выполнил команду

sudo service postgresql-9.3 initdb

... который снова успешно инициализировал службу db.

3
ответ дан 2 December 2019 в 20:28

RHEL / CentOS ನಂತಹ ಸಿಸ್ಟಂ ಆಧಾರಿತ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ 7 ಮತ್ತು ಫೆಡೋರಾ initdb ಅನ್ನು ಚಲಾಯಿಸುವ ವಿಧಾನವು ಸ್ವಲ್ಪ ಭಿನ್ನವಾಗಿರುತ್ತದೆ. ಇದನ್ನು ಇನ್ನು ಮುಂದೆ init ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಿಂದ ಮಾಡಲಾಗುವುದಿಲ್ಲ (ಅದು ಇನ್ನು ಮುಂದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ), ಮತ್ತು ಹೊಸ ವಿಧಾನವು ಅಪ್‌ಸ್ಟ್ರೀಮ್ ಸೂಚನೆಗಳಿಗೆ ಹೆಚ್ಚು ಹತ್ತಿರದಲ್ಲಿದೆ.

ನೀವು ಮೊದಲು ಸು ಗೆ ಪೋಸ್ಟ್‌ಗ್ರೆಸ್ ಬಳಕೆದಾರ, ತದನಂತರ initdb ಅಥವಾ pg_ctl initdb ಅನ್ನು ಚಲಾಯಿಸಿ. ಡೀಫಾಲ್ಟ್ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆರಿಸುವುದರಿಂದ ನೀವು ರೆಡ್ ಹ್ಯಾಟ್ ಬಿಲ್ಡ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯನ್ನು ಒದಗಿಸುವ ಅಗತ್ಯವಿಲ್ಲ / var / lib / pgsql .

ಉದಾಹರಣೆಗೆ:

# su - postgres
$ pg_ctl initdb
$ exit
#

ಸಹಜವಾಗಿ, ಆರಂಭಿಕ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹೊಂದಿಸಲು ನೀವು ಇದನ್ನು ಮೊದಲ ಸ್ಥಾಪನೆಯಲ್ಲಿ ಒಮ್ಮೆ ಮಾತ್ರ ಮಾಡುತ್ತೀರಿ. ನೀವು ಸಂಪೂರ್ಣವಾಗಿ ಹೊಸ ಸ್ಥಾಪನೆಯನ್ನು ರಚಿಸುತ್ತಿದ್ದರೆ ಅಥವಾ ವಿಪತ್ತಿನಿಂದ ಮರುಸ್ಥಾಪಿಸದ ಹೊರತು ನೀವು ಅದನ್ನು ಮತ್ತೆ ಮಾಡುವುದಿಲ್ಲ.

4
ответ дан 2 December 2019 в 20:28

Из здесь :

] Если вы полностью стираете и переустанавливаете базу данных Postgres, при запуске initdb например:

service postgresql-9.2 initdb -E 'UTF8' --pgdata = "/ foo / bar /"

вы можете столкнуться с этой служебной ошибкой:

Каталог данных не пуст! [FAILED]

Чтобы исправить это (и это ядерный вариант - все данные базы данных стираются!)

В Amazon Linux (2014-x):

rm -rf / var / lib / pgsql9 / data

В CentOS (6.x)

rm -rf /var/lib/pgsql/9.2/data

Теперь попробуйте снова команду initdb , и на этот раз она должна сработать:

service postgresql-9.2 initdb

15
ответ дан 2 December 2019 в 20:28

Теги

Похожие вопросы