Запуск сервера postgres SQL 9.6 в Amazon Linux возвращает нераспознанный сервис - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь запустить SQL-сервер Postgres в amazon Linux с помощью команды

sudo service postgresql start

Я установил сервер, используя этот метод.Я добавил его здесь для простоты

sudo rpm -i https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-ami201503-96-9.6-2.noarch.rpm

, а затем

sudo yum install postgresql96-server.x86_64

, после чего я сделал это, чтобы установить инструменты командной строки для postgres

sudo yum install postgresql96.x86_64 postgresql96-libs.x86_64

Anyпредложения о том, как я могу запустить сервер?Я обычно запускаю сервер с помощью команды

sudo service postgresql start

, однако в этом случае он не работает, так как он говорит: «Нераспознанная служба». Затем я попробовал это

postgres -D /usr/local/pgsql/data
postgres: could not access directory "/usr/local/pgsql/data": No such file or directory. Run initdb or pg_basebackup to initialize a PostgreSQL data directory.

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Я недавно установил PostgreSQL 9.2.24 на Amazon Linux 2 , и мне пришлось инициализировать базу данных вручную, прежде чем я смог создать ROLE и DATABASE, как обычно в Ubuntu.

// initialize database after installing with yum
$ sudo postgresql-setup initdb

// start
$ sudo systemctl start postgresql.service
0 голосов
/ 05 декабря 2018

Имея ту же проблему или похожую.Может быть, я установил pgsql из источника, не помню.Мы могли бы сделать собственные файлы запуска сервиса.Как?Давайте разберемся!>> RTFM << начиная с того, что мы уже знаем: </p>

man service

, что приводит нас к chkconfig (8), поэтому

man chkconfig

и дает нам возможность

chkconfig --add ${svcname}

чтобы добавить новую услугу под выбранным нами именем!

Но прежде чем мы это сделаем, мы, возможно, захотим проверить, что уже есть.С

service --status-all

мы получаем список всех известных сервисов и их статус выполнения.И я нашел в своем списке «postmaster», и, как вы, возможно, знаете, главный сервер PostgreSQL, к которому нужно подключаться, раньше назывался «postmaster».Тем не менее, когда я пытаюсь

service postmaster status

, он также говорит мне, что не знает такой службы.Ладно, забудь об этом - пока что - давай перейдем к созданию нашего собственного!Но я все еще хочу посмотреть, что есть в уровне запуска 3 (нормальный уровень запуска сервера).Итак, я иду

ls -1 /etc/rc.d/rc3.d |fgrep post

и там я нахожу: "K36postgresql95"!Соответственно, название нашего сервиса должно быть «postgresql95».Попытка этого:

service postgresql95 status

теперь говорит "почтмейстер остановлен".Смущает имя, которое служба сообщает для себя как в сервисе --status-all, и когда мы индивидуально запрашиваем его, оно отличается от имени, используемого для фактического обращения к нему в команде сервиса.Хорошо знать.Достаточно легко найти /etc/rc.d по интересующему вас имени.

service postgresql95 start

теперь запускает службу.И проверить с

psql -U ${pguser} ${pgdb}

, и я считаю, что работает.Так что теперь все, что мне нужно сделать, это включить этот сервис при загрузке системы для автоматического запуска

chkconfig --levels 3 postgresql95 on

, и это работает, не так ли?

PS: Неважно, чтоЯ случайно запускаю версию 9.5

...