Подключиться к кластеру PostgreSQL
К кластеру облачных баз данных PostgreSQL можно подключиться по DNS-адресу.
Если кластер подключен к приватной подсети, подключите к подсети кластера облачный роутер с доступом во внешнюю сеть.
Порты
Для подключения к PostgreSQL используйте порты:
- 5433 — порт для подключения к выбранной ноде через пулер соединений — позволяет снизить нагрузку на PostgreSQL;
- 5432 — порт для подключения напрямую к процессу PostgreSQL.
Способы подключения
- через терминальный клиент psql;
- через графические инструменты для управления базами данных: pgAdmin или офисный пакет с поддержкой ODBC или JDBC;
- из программного кода с SSL и без SSL.
Для всех способов доступно подключение с SSL-сертификатом.
Посмотреть адрес для подключения
- В панели управления перейдите в раздел Облачная платформа → Базы данных.
- Откройте страницу кластера баз данных → вкладка Подключение.
- В блоке DNS-адреса для подключения посмотрите DNS-адрес.
Подключиться с SSL
Подключение по SSL обеспечивает шифрование данных между вашим сервером и кластером баз данных.
- Bash
- PowerShell
- Python
- PHP
- Go
- Node.js
Скачайте корневой сертификат и поместите его в папку
~/.postgresql/
:mkdir -p ~/.postgresql/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
chmod 0600 ~/.postgresql/root.crtПодключитесь к кластеру:
psql --host=<host> \
--port=<port> \
--user=<database_user_name> \
--dbname=<database_name> \
--sslmode=verify-caУкажите:
<host>
— DNS-адрес ноды;<port>
— порт для подключения;<database_user_name>
— имя пользователя базы данных;<database_name>
— имя базы данных.
В панели управления нажмите Скачать сертификат для скачивания корневого сертификата и поместите его в папку
%APPDATA%\postgresql\
Подключитесь к кластеру:
psql --host=<host> \
--port=<port> \
--user=<database_user_name> \
--dbname=<database_name> \
--sslmode=verify-caУкажите:
<host>
— DNS-адрес ноды;<port>
— порт для подключения;<database_user_name>
— имя пользователя базы данных;<database_name>
— имя базы данных.
Скачайте корневой сертификат и поместите его в папку
~/.postgresql/
:mkdir -p ~/.postgresql/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
chmod 0600 ~/.postgresql/root.crtУстановите библиотеку psycopg2:
pip3 install psycopg2-binary
Используйте пример подключения:
import psycopg2
conn = psycopg2.connect("""
host=<host>
dbname=<database_name>
user=<database_user_name>
password=<password>
sslrootcert=<full_path_to_root_certificate>
sslmode=verify-ca
port=<port>
""")
cur = conn.cursor()
cur.execute('SELECT 40+2')
print(cur.fetchone())
cur.close()
conn.close()Укажите:
<host>
— DNS-адрес ноды;<database_name>
— имя базы данных;<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя;<full_path_to_root_certificate>
— полный путь до корневого сертификата;<port>
— порт для подключения.
Скачайте корневой сертификат и поместите его в папку
~/.postgresql/
:mkdir -p ~/.postgresql/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
chmod 0600 ~/.postgresql/root.crtУстановите библиотеку pgsql:
apt install php-pgsql
Используйте пример подключения:
<?php
$dbconn = pg_connect("
host=<host>
dbname=<database_name>
user=<database_user_name>
password=<password>
sslrootcert=<full_path_to_root_certificate>
sslmode=verify-ca
port=<port>
");
$query = 'SELECT 40 + 2';
$result = pg_query($query);
$row = pg_fetch_row($result);
echo $row[0];
pg_close($dbconn);
?>Укажите:
<host>
— DNS-адрес ноды;<database_name>
— имя базы данных;<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя;<full_path_to_root_certificate>
— полный путь до корневого сертификата;<port>
— порт для подключения.
Скачайте корневой сертификат и поместите его в папку
~/.postgresql/
:mkdir -p ~/.postgresql/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
chmod 0600 ~/.postgresql/root.crtИспользуйте пример подключения:
package main
import (
"context"
"fmt"
"os"
"github.com/jackc/pgx/v4"
)
func main() {
connectionString := fmt.Sprintf("postgres://%s:%s@%s:5432/%s?sslmode=verify-ca&sslrootcert=%s",
"<database_user_name>",
"<password>",
"<host>",
"<database_name>",
"<full_path_to_root_certificate>"
)
conn, err := pgx.Connect(context.Background(), connectionString)
if err != nil {
fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err)
os.Exit(1)
}
defer conn.Close(context.Background())
var sum int64
err = conn.QueryRow(context.Background(), "SELECT 40+2").Scan(&sum)
if err != nil {
fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
os.Exit(1)
}
fmt.Println(sum)
}Укажите:
<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя;<host>
— DNS-адрес ноды;<database_name>
— имя базы данных;<full_path_to_root_certificate>
— полный путь до корневого сертификата.
Скачайте корневой сертификат и поместите его в папку
~/.postgresql/
:mkdir -p ~/.postgresql/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
chmod 0600 ~/.postgresql/root.crtУстановите библиотеку pg:
npm install pg
Используйте пример подключения:
const fs = require('fs');
const pg = require('pg');
const config = {
host: '<host>',
port: '<port>',
database: '<database_name>',
user: '<database_user_name>',
password: '<password>',
ssl: {
rejectUnauthorized: true,
ca: fs.readFileSync('<full_path_to_root_certificate>').toString(),
},
};
const client = new pg.Client(config);
client.connect((error) => {
if (error) throw error;
});
client.query('SELECT 40 + 2 AS sum', (error, res) => {
if (error) throw error;
console.log(res.rows);
client.end();
});Укажите:
<host>
— DNS-адрес ноды;<port>
— порт для подключения;<database_name>
— имя базы данных;<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя;<full_path_to_root_certificate>
— полный путь до корневого сертификата.
Подключиться без SSL
- Bash
- PowerShell
- Python
- PHP
- Go
- Node.js
Откройте CLI.
Подключитесь к кластеру:
psql --host=<host> \
--port=<port> \
--user=<database_user_name> \
--dbname=<database_name> \
--sslmode=disableУкажите:
<host>
— DNS-адрес ноды;<port>
— порт для подключения;<database_user_name>
— имя пользователя базы данных;<database_name>
— имя базы данных.
Откройте CLI.
Подключитесь к кластеру:
psql --host=<host> \
--port=<port> \
--user=<database_user_name> \
--dbname=<database_name> \
--sslmode=disableУкажите:
<host>
— DNS-адрес ноды;<port>
— порт для подключения;<database_user_name>
— имя пользователя базы данных;<database_name>
— имя базы данных.
Установите библиотеку psycopg2:
pip3 install psycopg2-binary
Используйте пример подключения:
import psycopg2
conn = psycopg2.connect("""
host=<host>
dbname=<database_name>
user=<database_user_name>
password=<password>
port=<port>
""")
cur = conn.cursor()
cur.execute('SELECT 40+2')
print(cur.fetchone())
cur.close()
conn.close()Укажите:
<host>
— DNS-адрес ноды;<database_name>
— имя базы данных;<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя;<port>
— порт для подключения.
Установите библиотеку pgsql:
apt install php-pgsql
Используйте пример подключения:
<?php
$dbconn = pg_connect("
host=<host>
dbname=<database_name>
user=<database_user_name>
password=<password>
port=<port>
");
$query = 'SELECT 40 + 2';
$result = pg_query($query);
$row = pg_fetch_row($result);
echo $row[0];
pg_close($dbconn);
?>Укажите:
<host>
— DNS-адрес ноды;<database_name>
— имя базы данных;<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя;<port>
— порт для подключения.
Используйте пример подключения:
package main
import (
"context"
"fmt"
"os"
"github.com/jackc/pgx/v4"
)
func main() {
connectionString := fmt.Sprintf("postgres://%s:%s@%s:5432/%s",
"<database_user_name>",
"<password>",
"<host>",
"<database_name>",
)
conn, err := pgx.Connect(context.Background(), connectionString)
if err != nil {
fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err)
os.Exit(1)
}
defer conn.Close(context.Background())
var sum int64
err = conn.QueryRow(context.Background(), "SELECT 40+2").Scan(&sum)
if err != nil {
fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
os.Exit(1)
}
fmt.Println(sum)
}
Укажите:
<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя;<host>
— DNS-адрес ноды;<database_name>
— имя базы данных.
Установите библиотеку pg:
npm install pg
Используйте пример подключения:
const pg = require('pg');
const config = {
host: '<host>',
port: '<port>',
database: '<database_name>',
user: '<database_user_name>',
password: '<password>',
};
const client = new pg.Client(config);
client.connect((error) => {
if (error) throw error;
});
client.query('SELECT 40 + 2 AS sum', (error, res) => {
if (error) throw error;
console.log(res.rows);
client.end();
});Укажите:
<host>
— DNS-адрес ноды;<port>
— порт для подключения;<database_name>
— имя базы данных;<database_user_name>
— имя пользователя базы данных;<password>
— пароль пользователя.