Вопросы:PostgreSQL в ОС Linux
Установка БД
При установке ОС Linux Astra SE необходимо указать, что на сервере будет находиться СУБД. Данный пункт указывается при выборе программного обеспечения.
Установка сервера КРОС на ОС семейста Linux Установка сервера КРОС на ОС Windows
Если ОС Astra SE уже установлена, тогда для установки PostgreSQL можно воспользоваться менеджером пакетов Synaptic или в терминале набрать команду sudo apt install postgresql
Так как Astra Lunux SE, является ОС специального назначения, то доступ к репозиториям необходимо прописывать отдельно. При наличии образа установочного диска, его необходимо смонтировать и настроить список репозиториев:
sudo mount -o loop /<путь к образу системы>/AstraSmolenskAmd64.iso /media/cdrom0 sudo apt-cdrom add sudo apt update
или
sudo mkdir /media/install sudo mount /<путь к образу системы>/AstraSmolenskAmd64.iso /media/install sudo nano /etc/apt/source.list Вместо имеющихся строк записать: deb file:///media/install smolensk main contrib non-free Далее нажать <F2>, <Y> и <Enter>. sudo apt update
Образ может находится в каталоге /mnt/hdd/Recovery
В начало статьи
Не запускается PostqreSQL
При установке PostgreSQL на ОС Linux: Debian, Ubuntu, Эльбрус, CentOS и ряде других, при запуске сервиса PostgreSQL ОС может сообщить об отсутствии служебной БД(кластера), по указанному пути. Это означает, что кластер БД не инициализинован.
Для инициализации кластера необходимо выполнить следующие команды:
1. Проверить остановлен ли сервис PostgreSQL:
sudo /etc/init.d/postgresql status или
sudo service postgresql status или
sudo systemctl postgresql status
Вы должны получить ответ системы, о том, что сервис не активен.
2. Инициализация кластера PostgreSQL должна производиться от имени пользователя, который в последствии будет считаться администратором БД. По умолчанию это пользователь - postgres
Поэтому выполняем команду от имени этого пользователя: sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/main или
sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/data
Путь к БД, требуемый по умолчанию можно увидеть в сообщении об ошибке при старте сервиса PostgresSQL. Если есть необходимость в нестандартном месте расположения БД, то него необходимо указать при инициализации кластера.
3. Если используется нестандартное расположение БД, тогда после создания кластера и до запуска сервиса PosqtgreSQL необходимо внести изменения в файл postgresql.conf
data_directory = '<полный путь к БД из строки инициализации>'
hba_file = '<полный путь к файлам конфигурации>/pg_hba.conf'
ident_file = '<полный путь к файлам конфигурации>/pg_ident.conf'
external_pid_file = '/var/run/postgresql/pg-main.pid'
Файлы конфигурации могут располагаться либо в каталоге /etc/postgresql/<версия postgresql>/main, либо в каталоге, куда сгенерирована БД кластера, например, /var/lib/postgresql/<версия postgresql>/main, либо /var/lib/postgresql/<версия postgresql>/data, либо указанный путь.
4. После внесенных изменений необходимо запустить сервис:
sudo /etc/init.d/postgresql start или
sudo service postgresql start или
sudo systemctl postgresql start
Проверяем работу postgresql :
psql -U postgres -h localhost
Если будет запрос пароля, тогда необходимо ввести пароль от пользователя postgres(по умолчанию - postgres) в командной строке сервиса управления БД набрать: \l. При этом получим список баз данных. Для выхода нужно набрать: \q.
5. Для проверки автостарта сервиса postgresql необходимо перезагрузить компьютер.
Проверяем, узнав статус по командам, указанным п п.1. Если сервис не активен, тогда надо выполнить команду, позволяющую запускать postgresql при старте ОС В Debian и ОС, созданных на его основе: systemctl enable postgresql В CentOS и, созданных на основе RedHat: chkconfig postgresql on