Подключение к базе данных в кластере 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')