Настройка 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 используйте следующие команды:
- Создайте отдельного пользователя `elma365` с паролем `SecretPassword` для работы с БД.
Имя пользователя и пароль приведены для примера:
sudo -u postgres psql -c «CREATE ROLE elma365 WITH login password ‘SecretPassword’;»
- Создайте отдельную базу данных elma365 и назначьте выделенного пользователя elma365 её владельцем. Нельзя использовать существующую базу, т. к. система создаёт таблицы и схемы:
sudo -u postgres psql -c «CREATE DATABASE elma365 WITH OWNER elma365;»
- Добавьте необходимые расширения для базы данных elma365:
sudo -u postgres psql -d elma365 -c «CREATE EXTENSION \»uuid-ossp\»; CREATE EXTENSION pg_trgm;»
Разрешения подключения к PostgreSQL
- Добавьте 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`.
- Добавьте в конец конфигурационного файла авторизации /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
- Перезагрузите сервис PostgreSQL:
sudo systemctl restart postgresql
Настройка ограничений и лимитов к PostgreSQL
- Откройте для редактирования конфигурационный файл /etc/postgresql/10/main/postgresql.conf
sudo nano /etc/postgresql/10/main/postgresql.conf
- Увеличьте максимальное количество подключений, изменив значение параметра max_connections на 2000:
max_connections = 2000
- Увеличьте максимальное количество блокировок на транзакцию, изменив значение параметра max_locks_per_transaction на 512, также необходимо раскомментировать эту строку (убрать знак решетки #):
max_locks_per_transaction = 512
- Перезагрузите сервис PostgreSQL:
sudo systemctl restart postgresql
Подключение к PostgreSQL
Строка для подключения к PostgreSQL:
postgresql://elma365:[email protected]<postgresql-server-address>:5432/elma365?sslmode=disable
Резервное копирование данных PostgreSQL с использованием elma365ctl dump
начало внимание
Во время создания резервной копии сервисы elma365 останавливаются, приложение становится недоступным.
конец внимание
- Для создания резервной копии данных postgresql, используйте следующую команду:
elma365ctl dump —parts=postgres —consistent
- Дамп сохранится в папку /backup с временным штампом.
Восстановление данных PostgreSQL с использованием elma365ctl restore
- Остановите сервисы приложения и подготовьте систему к восстановлению данных с помощью команды:
elma365ctl restore —prepare
После этого нужно пересоздать базу PostgreSQL.
- Удалите базу данных elma365 с помощью команды:
DROP DATABASE elma365;
- Создайте базу и назначьте выделенного пользователя её владельцем:
CREATE DATABASE elma365 WITH OWNER elma365;
- Включите в базе требуемые расширения:
CREATE EXTENSION «uuid-ossp»; CREATE EXTENSION pg_trgm;
- Восстановите данные с помощью команды:
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
- 2.
В этой статье мы рассмотрим установку и настройку 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. 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. 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. |
Чтобы включить удаленное подключение, отредактируйте файл:
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. |
Как видите. Запустить и использовать базу данных 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
-
Войдите на сервер, на котором будет размещена база данных, и откройте окно терминала.
-
Загрузите последний репозиторий PostgreSQL. Для получения более подробных инструкций по установке посетите сайт документации PostgreSQL здесь.
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
-
Установить PostgreSQL версия 10 или выше. Замените содержимое
{версия}
версией, которую вы хотите установить.
sudo yum install -y postgresql{версия}-сервер
Пример:
sudo yum install -y postgresql13-server
-
Инициализировать базу данных.
sudo /usr/pgsql-{версия}/bin/postgresql-{версия}-setup initdb
-
Установите PostgreSQL для запуска при загрузке.
sudo systemctl enable postgresql-{версия}
-
Запустите сервер PostgreSQL.
sudo systemctl start postgresql-{версия}
-
Переключитесь на учетную запись пользователя postgres Linux, созданную во время установки.
sudo -iu postgres
-
Запустите интерактивный терминал PostgreSQL.
psql
-
Создайте базу данных Mattermost.
postgres=# СОЗДАТЬ БАЗА ДАННЫХ С КОДИРОВАНИЕМ 'UTF8' LC_COLLATE='en_US.
UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;
-
Создайте пользователя Mattermost «mmuser».
postgres=# СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ mmuser С ПАРОЛЕМ 'mmuser-password';
Примечание
Используйте более безопасный пароль, чем «mmuser-password».
-
Предоставьте пользователю доступ к базе данных Mattermost.
postgres=# ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ К БАЗЕ ДАННЫХ, наиболее важные для mmuser;
-
Закройте интерактивный терминал PostgreSQL.
postgres=# \q
-
Выйдите из учетной записи postgres .
exit
-
(необязательно) Если вы используете другой сервер для своей базы данных и сервера приложений Mattermost, вы можете разрешить PostgreSQL прослушивать все назначенные IP-адреса.
Для этого откройте
/var/lib/pgsql/{версия}/data/postgresql.conf
как root в текстовом редакторе. Рекомендуется убедиться, что только сервер Mattermost может подключиться к порту PostgreSQL через брандмауэр.
Откройте
/var/lib/pgsql/{version}/data/postgresql.conf
как root в текстовом редакторе.Найдите следующую строку:
#listen_addresses = 'localhost'
Раскомментируйте строку и измените
localhost 9от 0012 до
*
:
listen_addresses = '*'
Перезапустите PostgreSQL, чтобы изменения вступили в силу:
sudo systemctl перезапустить postgresql-{версия}
-
Измените файл
pg_hba.conf
, чтобы позволить серверу Mattermost взаимодействовать с базой данных.
Если сервер Mattermost и база данных находятся на одной машине :
Откройте
/var/lib/pgsql/{version}/data/pg_hba.conf
как root в текстовом редакторе.Найдите следующие строки:
Local All All Peer
HOST ALL ALL :: 1/128 Ident
Изменение
Peer
иIdent
доTrust
:
Local All All Trust
Host All All :: 1/128 Trust
Если самый вещественный сервер и база данных находятся на разных машинах :
Откройте
/var/lib/pgsql/{version}/data/pg_hba.conf
как root в текстовом редакторе.Добавьте следующую строку в конец файла, где {mattermost-server-IP} — это IP-адрес машины, на которой находится сервер Mattermost.
![]()
host all all {mattermost-server-IP}/32 md5
-
Перезагрузить PostgreSQL:
sudo systemctl reload postgresql-{версия}
-
Убедитесь, что вы можете подключиться к пользователю mmuser .
Если сервер Mattermost и база данных находятся на одном компьютере, используйте следующую команду:
psql --dbname=mattermost --username=mmuser --password
Если сервер Mattermost находится на другом компьютере, войдите на этот компьютер и используйте следующую команду:
psql --host={postgres-server-IP} --dbname=mattermost --username=mmuser --password
Примечание
Возможно, вам придется установить клиентское программное обеспечение PostgreSQL, чтобы использовать эту команду.