Подключение к базе данных в кластере PostgreSQL
К кластерам облачных баз данных PostgreSQL (Managed Databases) можно подключиться двумя способами:
- через интернет, если для подключения к кластеру используется публичная сеть;
- из виртуальных машин облачной платформы Selectel, если для подключения используется локальная сеть.
В обоих случаях также можно подключиться по IP или DNS-имени с использованием 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=<server_IP_1>, <server_IP_2>, <server_IP_3> \
port=6432 \
dbname=<database_name> \
user=<database_user_name>"
С использованием SSL
Подключиться к базе данных можно, введя команду:
psql "host=<server_IP_1>,<server_IP_2>,<server_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=server_ip_1,server_ip_2,server_ip_3'
'port=6432 dbname=db1')
Пример подключения для Python библиотеки psycopg2 c использованием SSL
psycopg2.connect('user=user1 password=secret'
'host=server_ip_1,server_ip_2,server_ip_3'
'port=6432 dbname=db1'
'sslmode=verify-ca')