Подключение к базе данных в кластере PostgreSQL

К кластерам облачных баз данных PostgreSQL (Managed Databases) можно подключиться двумя способами:

  • через интернет, если для подключения к кластеру используется публичная сеть;
  • из виртуальных машин облачной платформы Selectel, если для подключения используется локальная сеть.

В обоих случаях доступна возможность подключения с использованием SSL протокола.

Способы подключения

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

  • запустив терминальную программу PostgreSQL psql, в которой можно интерактивно выполнять команды SQL;
  • используя графические инструменты, например, pgAdmin или офисный пакет с поддержкой ODBC или JDBC, позволяющий создавать базы данных и управлять ими;
  • из вашего приложения, используя один из доступных языковых интерфейсов.

Порты для подключения

6432 – порт для подключения к мастер-ноде вне зависимости от выбранного адреса подключения.

5433 – порт для подключения к выбранной ноде через пулер соединений.

5432 – порт для подключения к выбранной ноде напрямую.

Скачивание SSL-сертификата

Linux

Введите команду:

mkdir ~/.postgresql
wget "https://storage.dbaas.selcloud.ru/CA.pem" -O ~/.postgresql/root.crt 
chmod 0600 ~/.postgresql/root.crt

Windows

Скачайте CA-сертификат из настроек кластера базы данных и поместите его в папку %APPDATA%\postgresql\.

Подключение через утилиту psql

Без SSL

Подключиться к базе данных <имя базы данных> можно, введя команду:

psql "host=IPАдресСервера1, IPАдресСервера2, IPАдресСервера3 \
      port=6432 \
      dbname=ИмяБазыДанных \
      user=ИмяПользователяБазыДанных" 

С использованием SSL

Подключиться к базе данных <имя базы данных> можно, введя команду:

psql "host=IPАдресСервера1,IPАдресСервера2,IPАдресСервера3 \
port=6432 \
user=<database user name> \
dbname=<database name> \
sslmode=verify-ca"

Подключение из программного кода

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

  • используя драйвер, поддерживающий подключение к нескольким хостам;

    Пример подключения для Python библиотеки psycopg2 без использования SSL:

      psycopg2.connect('user=user1 password=secret'
                       'host=ip_address1,ip_address2,ip_address3'
                       'port=6432 dbname=db1')

    Пример подключения для Python библиотеки psycopg2 c использованием SSL:

    psycopg2.connect('user=user1 password=secret'
                     'host=ip_address1,ip_address2,ip_address3'
                     'port=6432 dbname=db1'
                     'sslmode=verify-ca')
  • используя адрес балансировщика нагрузки, подключенного к хостам кластера;

  • путем реализации выбора хоста в коде своего приложения.