Проблема конфигурации Postgres в Ubuntu? - PullRequest
0 голосов
/ 06 марта 2020

Я установил Postgres 12 в Ubuntu, собрав его из исходного кода, и у меня возникли две проблемы:

  1. Хотя я следовал инструкции по установке от Postgrez, каждый раз, когда я перезагружаю свой компьютер, мой Postgres server stopz и больше не рассматривается как работающий процесс.

Чтобы запустить его в первый раз после установки, я делаю это с терминала:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

После перезапуска, чтобы снова запустить DB при запуске: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data выдает эту ошибку:

initdb: error: directory "/usr/local/pgsql/data" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/pgsql/data" or run initdb
with an argument other than "/usr/local/pgsql/data".

Означает ли это, что каждый раз, когда я запускаю Postgres после перезапуска, мне нужно создать новый каталог / data?

После установки Postgres sing pip или pip3 можно просто переключить пользователя на postgres и запустить psql для ввода postgres, однако теперь мне нужно запустить "/ usr / local / bin / psql ». Обратите внимание, что я экспортировал все пути за https://www.postgresql.org/docs/12/installation.html. Как я могу это исправить? Можно ли для этого установить псевдоним?

Ответы [ 3 ]

1 голос
/ 06 марта 2020

После перезапуска, чтобы снова запустить БД при запуске: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data, выдает эту ошибку:

Означает ли это, что каждый раз, когда я запускаю Postgres после перезапуска, мне приходится создавать новый каталог / data?

Нет, совсем наоборот. Вам не нужно initdb после первого раза, вам просто нужно начать. Это ваша попытка initdb, когда вам не нужно, что вызывает сообщение об ошибке. Обратите внимание, что попытка initdb не приносит никакого вреда, потому что он отказался работать. Он просто генерирует шумы журнала / консоли.

После установки Postgres sing pip или pip3 можно просто переключить пользователя на postgres и запустить psql для ввода postgres, однако теперь я должен запустить "/ usr / local / bin / psql". Обратите внимание, что я экспортировал все пути за https://www.postgresql.org/docs/12/installation.html. Как я могу это исправить?

Я не знаю, что означает ваше первое предложение, так как вы не используете pip или pip3 для установки PostgreSQL (или, по крайней мере, документы не опишите это), хотя вы можете использовать их для установки psycopg2, чтобы python мог общаться с PostgreSQL.

Вы могли бы использовать псевдоним, но, вероятно, было бы более разумно отредактировать ~ / .bash_profile для установите PATH, как описано на странице, на которую вы ссылаетесь в Переменные среды .

0 голосов
/ 06 марта 2020
  1. / usr / local / pgsql / bin / pg_ctl start -D '/ usr / local / pgsql / data'

  2. Экспорт в postgres ~ / .bashr c:

    LD_LIBRARY_PATH = / usr / local / pgsql / lib экспорт учетной записи пользователя LD_LIBRARY_PATH PATH = / usr / local / pgsql / bin: $ PATH экспорт PATH

0 голосов
/ 06 марта 2020

Вам необходимо зарегистрировать postgreSQL в качестве службы.

запустите:

pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-S a[uto] | d[emand] ] [-w] [-t seconds] [-s] [-o options]

Пример:

pg_ctl register -N postgresql -U OS_username -P OS_password -D '/etc/postgresql/12/data' -w

Более подробная информация в руководстве: pg_ctl

Примечания:

  • Имя пользователя и пароль относятся к ОС, а не postgresql
  • Если вы есть сомнения прочитайте руководство.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...