Подключение к кластеру PostgreSQL
-
Как получить SSL-сертификат для подключения к Managed Service for PostgreSQL на Windows?
-
Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?
-
Как установить SSL-сертификат для подключения Power BI к Managed Service for PostgreSQL через psql?
-
Что делать, если при подключении я получаю ошибку SSL is required?
-
Сколько одновременных подключений к одному хосту доступно в Managed Service for PostgreSQL?
-
Почему при попытке подключиться к базе данных возникает ошибка?
-
Почему при попытке подключиться к базе данных из Looker Studio возникает ошибка?
Возможен ли доступ к кластеру изнутри Yandex Cloud?
К хостам кластера Managed Service for PostgreSQL можно подключиться:
- Через интернет, если вы настроили публичный доступ для нужного хоста. К таким хостам подключиться можно только используя SSL-соединение.
- С виртуальных машин Yandex Cloud, расположенных в той же облачной сети. Если к хосту нет публичного доступа, для подключения с таких виртуальных машин необязательно использовать SSL-соединение.
- Из контейнера в сервисе Yandex Serverless Containers. Если к хосту нет публичного доступа, контейнер должен располагаться в той же облачной сети.
Подробнее см. в документации сервиса.
Можно ли подключиться к кластеру из Docker-контейнера?
Да, для этого настройте Dockerfile.
Пример подключения из контейнера в сервисе Yandex Serverless Containers см. в практическом руководстве.
Как получить SSL-сертификат для подключения к Managed Service for PostgreSQL на Windows?
SSL-сертификат можно получить с помощью PowerShell:
mkdir $HOME\.postgresql; curl.exe --output $HOME\.postgresql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem
Сертификат будет сохранен в файле $HOME\.postgresql\root.crt
.
Подробнее о получении сертификата и подключении к базе данных см. в документации сервиса.
Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?
Полный текст ошибки:
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012)
The revocation function was unable to check revocation for the certificate
Это означает, что при подключении к веб-сайту не удалось проверить, есть ли его сертификат в списке отозванных.
Чтобы исправить ошибку:
-
убедитесь, что проверку не блокируют настройки корпоративной сети;
-
выполните команду с параметром
--ssl-no-revoke
.mkdir $HOME\.postgresql; curl.exe --ssl-no-revoke -o $HOME\.postgresql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem
Как установить SSL-сертификат для подключения Power BI к Managed Service for PostgreSQL через psql?
-
Установите Windows Subsystem for Linux
(WSL) и выполните в терминале команду:mkdir /mnt/c/temp && \ curl "https://storage.yandexcloud.net/cloud-certs/CA.pem" --output /mnt/c/temp/CA.pem && \ openssl pkcs12 -export -out /mnt/c/temp/CA.pfx -nokeys -in /mnt/c/temp/CA.pem
Сертификат будет доступен по пути
C:\temp\CA.pfx
. -
Разместите полученный сертификат в хранилище сертификатов Windows
.
Что делать, если при подключении я получаю ошибку SSL is required?
Ошибка означает, что вы пытаетесь подключиться к кластеру с хостом в публичном доступе. Такие хосты поддерживают только соединения с SSL-сертификатом. Вы можете:
- Получить SSL-сертификат и добавить его в приложение, которое вы используете для подключения.
- Отключить публичный доступ для хостов и подключаться к кластеру с виртуальной машины, расположенной в той же облачной сети.
Можно ли подключиться к хостам кластера по SSH?
Подключиться к хостам через SSH не получится. Это сделано в целях безопасности и отказоустойчивости пользовательских кластеров, так как прямые изменения внутри хоста могут привести к его полной неработоспособности.
Сколько одновременных подключений к одному хосту доступно в Managed Service for PostgreSQL?
Количество одновременных подключений задается на уровне кластера в настройке Max connections. По умолчанию установлено максимальное значение, которое задается формулой:
200 × <количество_vCPU_на_одном_хосте>
О том, как изменить настройки PostgreSQL на уровне кластера читайте в документации.
Сколько подключений доступно одному пользователю?
По умолчанию кластер резервирует для каждого пользователя 50 подключений к каждому хосту. Вы можете изменить это количество в настройке Conn limit.
Если лимит подключений для пользователя будет исчерпан, то попытка открыть новое подключение завершится ошибкой:
too many active clients for user (pool_size for user <имя_пользователя> reached <значение_лимита>)
О том, как изменить настройки PostgreSQL на уровне пользователя читайте в документации.
Почему при попытке подключиться к базе данных возникает ошибка?
Подключение к базе данных может завершиться ошибкой вида:
ERROR: odyssey: ce3ea075f4ffa: route for 'dbname.username' is not found
Ошибка означает, что в параметрах подключения указано неверное имя базы данных.
Почему при попытке подключиться к базе данных из Looker Studio возникает ошибка?
Для подключения из Looker Studio необходимо сгенерировать и указать в настройках подключения файл сертификата клиента и приватный ключ. О том, как это сделать, см. в разделе Подключение из Looker Studio.
Почему соединение завершается ошибкой?
Соединение с кластером Managed Service for PostgreSQL может завершаться сообщением:
FATAL: terminating connection due to administrator command
Такое сообщение не является ошибкой, а означает, что длительность сессии/транзакции превысила значение настройки Session duration timeout (по умолчанию — 12 часов).