Настройка postgresql: Настройка PostgreSQL под Linux / Хабр

PostgreSQL


В статье описана установка PostgreSQL для ОС Ubuntu Linux 20.04. Вы также можете ознакомиться с кратким руководством в документации.

начало внимание 

Для примера используется имя базы elma365, пользователь elma365 и пароль SecretPassword.

При настройке задайте эти данные согласно политике безопасности, принятой в вашей организации.

конец внимание

 

Установка PostgreSQL

Для корректной работы системы требуется PostgreSQL версии 10 — 13.

Для установки PostgreSQL добавьте официальный репозиторий:

sudo sh -c ‘echo «deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main» > /etc/apt/sources.list.d/pgdg.list’

wget —quiet -O — https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add —

sudo apt update

 

Далее установите PostgreSQL:

sudo apt install postgresql-13

 

Настройка PostgreSQL

Начало внимание

Для пароля разрешается применять следующие символы:

  • Заглавные латинские буквы: от A до Z;
  • Строчные латинские буквы: от a до z;
  • Цифры от 0 до 9;
  • Символы: !()-_+=$

Конец внимание

Для настройки PostgreSQL используйте следующие команды:

 

  1. Создайте отдельного пользователя `elma365` с паролем `SecretPassword` для работы с БД. Имя пользователя и пароль приведены для примера:

sudo -u postgres psql -c «CREATE ROLE elma365 WITH login password ‘SecretPassword’;»

 

  1. Создайте отдельную базу данных elma365 и назначьте выделенного пользователя elma365 её владельцем. Нельзя использовать существующую базу, т. к. система создаёт таблицы и схемы:

sudo -u postgres psql -c «CREATE DATABASE elma365 WITH OWNER elma365;»

 

  1. Добавьте необходимые расширения для базы данных elma365:

sudo -u postgres psql -d elma365 -c «CREATE EXTENSION \»uuid-ossp\»; CREATE EXTENSION pg_trgm;»

Разрешения подключения к PostgreSQL

  1. Добавьте IP-адрес сервера, на котором запущен PostgreSQL, в конфигурационный файл /etc/postgresql/10/main/postgresql.conf в параметр listen_addresses (например, 192.168.10.10):

sudo nano /etc/postgresql/10/main/postgresql.conf

listen_addresses = ‘localhost, 10. 0.1.1, 192.168.100.101′

 

10.0.1.1 является IP адресом по умолчанию при разрешении доступа к хосту из microk8s командой `sudo microk8s enable host-access`.

  1. Добавьте в конец конфигурационного файла авторизации /etc/postgresql/10/main/pg_hba.conf адрес сети, в которой работают ноды elma365:

sudo nano /etc/postgresql/10/main/pg_hba.conf

host    all             all             10.0.0.0/8              md5

host    all             all             192.168.0.0/16              md5

 

  1. Перезагрузите сервис PostgreSQL:

sudo systemctl restart postgresql

Настройка ограничений и лимитов к PostgreSQL

  1. Откройте для редактирования конфигурационный файл /etc/postgresql/10/main/postgresql.conf

sudo nano /etc/postgresql/10/main/postgresql.conf

  1. Увеличьте максимальное количество подключений, изменив значение параметра max_connections на 2000:

max_connections = 2000

  1. Увеличьте максимальное количество блокировок на транзакцию, изменив значение параметра max_locks_per_transaction на 512, также необходимо раскомментировать эту строку (убрать знак решетки #):

max_locks_per_transaction = 512

  1. Перезагрузите сервис PostgreSQL:

sudo systemctl restart postgresql

Подключение к PostgreSQL

Строка для подключения к PostgreSQL:

postgresql://elma365:SecretPassword@<postgresql-server-address>:5432/elma365?sslmode=disable

Резервное копирование данных PostgreSQL с использованием elma365ctl dump

начало внимание

Во время создания резервной копии сервисы elma365 останавливаются, приложение становится недоступным.

конец внимание

  1. Для создания резервной копии данных postgresql, используйте следующую команду:

elma365ctl dump —parts=postgres —consistent

  1. Дамп сохранится в папку /backup с временным штампом.

Восстановление данных PostgreSQL с использованием elma365ctl restore

  1. Остановите сервисы приложения и подготовьте систему к восстановлению данных с помощью команды:

elma365ctl restore —prepare

После этого нужно пересоздать базу PostgreSQL.

  1. Удалите базу данных elma365 с помощью команды:

DROP DATABASE elma365;

  1. Создайте базу и назначьте выделенного пользователя её владельцем:

CREATE DATABASE elma365 WITH OWNER elma365;

  1. Включите в базе требуемые расширения:

CREATE EXTENSION «uuid-ossp»; CREATE EXTENSION pg_trgm;

  1. Восстановите данные с помощью команды:

elma365ctl restore —parts=postgres —path=/backup/<папка_с_дампом> 

Система будет доступна для работы в течение нескольких минут после завершения работы команды.





create_external_database.html




mongodb.html


Была ли статья полезной?

ДаНет

Выберите вариантРекомендации не помоглиТекст трудно понятьНет ответа на мой вопросСодержание статьи не соответствует заголовкуДругая причина

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас



Установка и настройка PostgreSQL на Kali Linux

Содержание

  • 1 Что такое PostgreSQL на Kali Linux
  • 2 Установка PostgreSQL на Kali Linux
    • 2. 1 Обновление пакетов Kali Linux
    • 2.2 Установка PostgreSQL на Kali Linux
    • 2.3 Проверка установки PostgreSQL на Kali Linux
    • 2.4 Настройка удаленного доступа к PostgreSQL

В этой статье мы рассмотрим установку и настройку PostgreSQL 15 на Kali Linux 2022.x.

Еще по теме: Просмотр настройка и изменение Iptables Kali Linux

Что такое PostgreSQL на Kali Linux

PostgreSQL — это объектно-реляционная система управления базами данных (ORDBMS), самая развитая из всех открытых СУБД.

Некоторые из важных функций PostgreSQL включают в себя:

  • Гибкий доступ к базам данных, их организация и хранение.
  • Управление записями в базах данных: создание, редактирование и удаление, обновление версий и так далее.
  • Просмотр нужной информации из базы по запросу, например для ее отправки на сайт или в интерфейс приложения.
  • Отправка транзакций, последовательных запросов, собранных в подобие скрипта.
  • Настройка и контроль доступа к той или иной информации, группировка пользователей по уровню прав.
  • Контроль версий и организация одновременного доступа к базе из разных источников так, чтобы предотвратить сбои.
  • Контроль состояния базы в целом.

Установка PostgreSQL на Kali Linux

Следующие шаги помогут нам установить PostgreSQL на Kali Linux и протестировать создание базы данных. Kali Linux — это дистрибутив на основе Debian, поэтому мы будем использовать диспетчер пакетов «apt».

Обновление пакетов Kali Linux

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

sudo apt update && sudo apt upgrade -y

sudo reboot

После обновления перезагрузите систему.

Установка PostgreSQL на Kali Linux

Postgresql 15 установлен в Kali Linux по умолчанию. Проверьте доступность PostgreSQL в Kali Linux, выполнив команду:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

$ sudo apt show postgresql                          

Package: postgresql

Version: 15+246

Priority: optional

Section: database

Source: postgresql-common (246)

Maintainer: Debian PostgreSQL Maintainers <[email protected]>

Installed-Size: 15.4 kB

Depends: postgresql-15

Suggests: postgresql-doc

Tag: devel::lang:sql, interface::daemon, network::server, network::service,

role::metapackage, role::program, suite::postgresql, works-with::db

Download-Size: 9,836 B

APT-Sources: http://http.kali.org/kali kali-rolling/main amd64 Packages

Description: object-relational SQL database (supported version)

This metapackage always depends on the currently supported PostgreSQL

database server version.

….

Для установки, выполните команду:

sudo apt install postgresql -y

Для запуская postgresql на Kali Linux, выполните следующие команды:

sudo systemctl start postgresql

Проверьте работу postgresql на Kali Linux:

1

2

3

4

5

6

7

8

9

10

$ systemctl status postgresql

● postgresql.service — PostgreSQL RDBMS

     Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; preset: disabled)

     Active: active (exited) since Mon 2022-11-28 14:53:17 EST; 11s ago

    Process: 2436 ExecStart=/bin/true (code=exited, status=0/SUCCESS)

   Main PID: 2436 (code=exited, status=0/SUCCESS)

        CPU: 1ms

 

Nov 28 14:53:17 kali systemd[1]: Starting PostgreSQL RDBMS. ..

Nov 28 14:53:17 kali systemd[1]: Finished PostgreSQL RDBMS.

Проверка установки PostgreSQL на Kali Linux

Проверьте, возможность подключения к PostgreSQL для создания тестовой базы данных. После установки PostgreSQL, создается пользователь по умолчанию с именем postgres:

sudo su — postgres

Для создания сложного пароля и защиты пользователя postgres, выполните команду (см. Генерация паролей в терминале Linux):

psql -c «alter user postgres with password ‘MyStrongPassword'»

Для запуска команд Postgresql, войдите в командную строку PostgreSQL:

$ psql

psql (15.1 (Debian 15.1-1))

Type «help» for help.

 

postgres=#

Для отображения списка доступных баз данных:

1

2

3

4

5

6

7

8

9

10

$ \l

                               List of databases

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  

————+———-+———-+————-+————-+————————

postgres  | postgres | UTF8     | en_US. UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

(3 rows)

Чтобы создать базу данных, выполните команду:

CREATE DATABASE testdb;

Убедитесь, что создана новая база данных, еще раз выполнив команду:

1

2

3

4

5

6

7

8

9

10

11

# \l

List of databases

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  

————+———-+———-+————-+————-+————————

postgres  | postgres | UTF8     | en_US. UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

testdb    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

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

postgres=# CREATE USER testuser WITH ENCRYPTED PASSWORD ‘MyPassword’;

CREATE ROLE

postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb to testuser;

GRANT

Для подключения к созданной базе данных:

# \c testdb

You are now connected to database «testdb» as user «postgres».

testdb=#

Настройка удаленного доступа к PostgreSQL

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

Откройте файл конфигурации:

sudo vim /etc/postgresql/15/main/postgresql.conf

В разделе Connection and Authentication (Подключение и аутентификация), раскомментируйте строку:

59; #listen_addresses=’localhost’

и отредактируйте строку, чтобы разрешить прослушивание на любом интерфейсе (To listen on all interfaces) или на определенных интерфейсах (To enable only specified private IP address):

# To listen on all interfaces

listen_addresses = ‘*’

 

# To enable only specified private IP address

listen_addresses = ‘192. 168.50.2′

Чтобы включить удаленное подключение, отредактируйте файл:

sudo vim /etc/postgresql/15/main/pg_hba.conf

Внесите следующие изменения:

# To accept connections from anywhere

host all all 0.0.0.0/0 md5

 

# To accept only from trusted subnet

host all all 10.10.10.0/24 md5

После внесения вышеуказанных изменений необходимо перезапустить postgresql:

sudo systemctl restart postgresql

Чтобы отключить удаленный доступ к базе данных Postgresql, откройте вышеуказанные файлы конфигурации и добавьте «
#» в начале строк.

Например, чтобы отключить удаленный доступ из любого места, отредактируйте строку и не забудьте перезапустить postgresql, когда закончите:

#host all all 0. 0.0.0/0 md5

Как видите. Запустить и использовать базу данных Postgresql довольно просто, в любом дистрибутиве Linux, в том числе Kali Linux.

РЕКОМЕНДУЕМ:

  • Интересные уязвимости PostgreSQL
  • Установка и использование сканера Nessus на Kali Linux

centos — postgresql-setup —initdb с пользовательским каталогом данных

спросил

Изменено
9 месяцев назад

Просмотрено
8к раз

Я пытаюсь настроить Postgres 12 на Centos 8.
Postgres должен быть установлен в каталог по умолчанию, т.е. /var/lib/pgsql , однако я хочу, чтобы каталог данных находился в /data/pgsql

Я хочу использовать postgresql-setup от имени пользователя root, так как я считаю, что вместе с ним будут создаваться служебные файлы systemd, а не использование pg_ctl или запуск initdb как пользователь постгреса.

Однако, если я попробую

 $ postgresql-setup --initdb --pgdata=/data/pgsql/
 

Я получу следующую ошибку.

 postgresql-setup: нераспознанный параметр '--pgdata=/data/pgsql'
FATAL: невозможно разобрать аргументы
 

Как лучше всего это сделать?

  • postgresql
  • centos

Если вы хотите поместить свои данные в пользовательский каталог /pgdata/14/data , создайте каталог с правильными разрешениями :

/pgdata

 mkdir -1pdata -1p данные
sudo chown postgres:postgres /pgdata/14/data
 

Затем получите systemctl для создания файла службы :

 sudo systemctl edit postgresql-14.service
 

Как упоминалось выше, просто добавьте адрес PGDATA :

 [Service]
Среда=PGDATA=/pgdata/14/данные
 

Это создаст файл /etc/systemd/system/postgresql-14.service.d/override.conf . Он будет объединен с исходным файлом службы.

Чтобы проверить его содержимое:

 # cat /etc/systemd/system/postgresql-14.service.d/override.conf
[Оказание услуг]
Среда=PGDATA=/pgdata/14/данные
 

Перезагрузить systemd:

 # systemctl daemon-reload
 

Инициализировать каталог данных PostgreSQL:

 sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
 

Запустите и включите службу:

 sudo systemctl enable postgresql-14
sudo systemctl запустить postgresql-14
 

/usr/pgsql-12/bin/initdb —pgdata=/данные/pgsql

postgresql-setup не создает служебный файл systemd.

Вы должны создать его с нуля /lib/systemd/system/postgresql-14.service или создать файл конфигурации для файла службы systemd по умолчанию.

Например, /lib/systemd/system/db-test.service, который содержит путь к нужной базе данных

 # Расположение каталога базы данных
Среда=PGDATA=/данные/pgsql/db_test
 

затем запустите

 # systemctl daemon-reload
# systemctl db-test. service
# /usr/bin/postgresql-14-setup initdb db-test
Инициализация базы данных... ОК
 

и вуаля

 # ls -l /data/pgsql/db_test/pg_hba.conf
-rw------- 1 postgres postgres 4577 25 февраля 15:19 /data/pgsql/db_test/pg_hba.conf
 

Если вы хотите использовать службу по умолчанию, создайте конфигурацию /lib/systemd/system/postgresql-14.service.d/postgresql-14.conf для службы /lib/systemd/system/postgresql-14.service

Например,

 # кошка /lib/systemd/system/postgresql-14.service.d/postgresql-14.conf
[Оказание услуг]
Среда=PGDATA=/данные/pgsql/postgresql-14
 

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

Установка базы данных PostgreSQL — документация Mattermost

  1. Войдите на сервер, на котором будет размещена база данных, и откройте окно терминала.

  2. Загрузите последний репозиторий PostgreSQL. Для получения более подробных инструкций по установке посетите сайт документации PostgreSQL здесь.

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

  1. Установить PostgreSQL версия 10 или выше. Замените содержимое {версия} версией, которую вы хотите установить.

sudo yum install -y postgresql{версия}-сервер

Пример:

sudo yum install -y postgresql13-server

  1. Инициализировать базу данных.

sudo /usr/pgsql-{версия}/bin/postgresql-{версия}-setup initdb

  1. Установите PostgreSQL для запуска при загрузке.

sudo systemctl enable postgresql-{версия}

  1. Запустите сервер PostgreSQL.

sudo systemctl start postgresql-{версия}

  1. Переключитесь на учетную запись пользователя postgres Linux, созданную во время установки.

sudo -iu postgres

  1. Запустите интерактивный терминал PostgreSQL.

psql

  1. Создайте базу данных Mattermost.

postgres=# СОЗДАТЬ БАЗА ДАННЫХ С КОДИРОВАНИЕМ 'UTF8' LC_COLLATE='en_US. UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;

  1. Создайте пользователя Mattermost «mmuser».

postgres=# СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ mmuser С ПАРОЛЕМ 'mmuser-password';

Примечание

Используйте более безопасный пароль, чем «mmuser-password».

  1. Предоставьте пользователю доступ к базе данных Mattermost.

postgres=# ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ К БАЗЕ ДАННЫХ, наиболее важные для mmuser;

  1. Закройте интерактивный терминал PostgreSQL.

postgres=# \q

  1. Выйдите из учетной записи postgres .

exit

  1. (необязательно) Если вы используете другой сервер для своей базы данных и сервера приложений Mattermost, вы можете разрешить PostgreSQL прослушивать все назначенные IP-адреса. Для этого откройте /var/lib/pgsql/{версия}/data/postgresql.conf как root в текстовом редакторе. Рекомендуется убедиться, что только сервер Mattermost может подключиться к порту PostgreSQL через брандмауэр.

  1. Откройте /var/lib/pgsql/{version}/data/postgresql.conf как root в текстовом редакторе.

  2. Найдите следующую строку:

#listen_addresses = 'localhost'

  1. Раскомментируйте строку и измените localhost 9от 0012 до * :

listen_addresses = '*'

  1. Перезапустите PostgreSQL, чтобы изменения вступили в силу:

sudo systemctl перезапустить postgresql-{версия}

  1. Измените файл pg_hba.conf , чтобы позволить серверу Mattermost взаимодействовать с базой данных.

Если сервер Mattermost и база данных находятся на одной машине :

  1. Откройте /var/lib/pgsql/{version}/data/pg_hba.conf как root в текстовом редакторе.

  2. Найдите следующие строки:

Local All All Peer

HOST ALL ALL :: 1/128 Ident

  1. Изменение Peer и Ident до Trust :

Local All All Trust

Host All All :: 1/128 Trust

Если самый вещественный сервер и база данных находятся на разных машинах :

  1. Откройте /var/lib/pgsql/{version}/data/pg_hba.conf как root в текстовом редакторе.

  2. Добавьте следующую строку в конец файла, где {mattermost-server-IP} — это IP-адрес машины, на которой находится сервер Mattermost.

host all all {mattermost-server-IP}/32 md5

  1. Перезагрузить PostgreSQL:

sudo systemctl reload postgresql-{версия}

  1. Убедитесь, что вы можете подключиться к пользователю mmuser .

  1. Если сервер Mattermost и база данных находятся на одном компьютере, используйте следующую команду:

psql --dbname=mattermost --username=mmuser --password

  1. Если сервер Mattermost находится на другом компьютере, войдите на этот компьютер и используйте следующую команду:

psql --host={postgres-server-IP} --dbname=mattermost --username=mmuser --password

Примечание

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