понедельник, 12 июля 2021 г.

Установка и подключение к PostgreSQL в Debian 10

По умолчанию в Debian 10 из стандартных репозитариев устанавливается 11 версия PostgreSQL
$ sudo apt install postgresql
При этом создается пользователь postgres, от имени которого будет инициироваться запуск приложения. Учетная запись postgres создается как заблокированная для аутентификации в самой ОС и поэтому пароля не имеет.
Добавление PostgreSQL в автозагрузку и запуск сервиса:
$ sudo systemctl enable postgresql
$ sudo systemctl start postgresql

Сервер баз по умолчанию слушает localhost на порту 5432.
Логи сервера будут в файле - /var/log/postgresql/

Заходим от имени postgres в командную строку сервера базы данных
$ sudo -u postgres psql
В этом режиме под пользователем postgres меняются глобальные настройки всей СУБД (создаются пользователи, базы, выполняется репликация и пр.)

Просмотр всех созданных пользователей:
postgres=# \du
Создание нового пользователя, выдача ему прав на создание базы данных, установка пароля для пользователя:
postgres=# CREATE USER korolev;
postgres=# ALTER ROLE korolev CREATEDB;
postgres=# ALTER USER korolev with encrypted password '******';

Выход из клиента psql - CTRL+D
По умолчанию все созданные локальные пользователи имеют метод аутентификации – peer, то есть выполняется аутентификация средствами ОС и при подключении к СУБД из под одноименного пользователя ОС не потребуется введение пароля.
Это регулируется в файле  - /etc/postgresql/11/main/pg_hba.conf

Из оболочки ОС под пользователем korolev создаем базу данных с именем tet
$ createdb tet
Теперь созданная база данных может быть использована пользователем korolev.
Подключение к базе выполняется так:
$ psql -d tet
psql (11.12 (Debian 11.12-0+deb10u1))
Введите "help", чтобы получить справку.
tet=>

Пользователь, создавший базу данных может делать с ней все что захочет.

К базе данных можно подключиться с использованием библиотек языков программирования, например, с помощью библиотеки psycopg2 и Python.
Установка библиотеки psycopg2 для взаимодействия с базой данных:
$ sudo apt install python3-psycopg2
$ sudo apt install libpq-dev


Теперь можно использовать скрипт на Python для выполнения команд

#!/usr/bin/python3
#-*-coding: utf-8-*-

import psycopg2
conn = psycopg2.connect(dbname='tet', user='korolev', password='******', host='localhost')
cursor = conn.cursor()

cursor.execute('SELECT * FROM ats')
for row in cursor:
    print(row)

cursor.close()
conn.close()


Комментариев нет:

Отправить комментарий