Entenda e use a string de conexão Postgres

Entenda e use a string de conexão Postgres
PostgreSQL é um poderoso sistema de dados de banco de dados-relativa de objetos e de código aberto. Ele aproveita a linguagem SQL com recursos adicionais para melhorar as cargas de trabalho de segurança e escala. O PostgreSQL é bem conhecido por sua confiabilidade, integridade de dados, extensibilidade e conjunto de recursos robustos. Saiba mais sobre o PostgreSQL.

Neste guia, daremos uma olhada nos URLs de conexão no PostgreSQL.

Pré -requisitos

Para executar as etapas demonstradas neste guia, você precisa dos seguintes componentes:

  • Um ambiente de Linux em funcionamento. Por exemplo, confira este guia sobre a instalação do Ubuntu no VirtualBox.
  • Instalou e configurou a versão mais recente do PostgreSQL. Confira a instalação do PostGresql no Ubuntu.

Opcionalmente, você pode configurar um front-end PostGresql para trabalhar com uma ferramenta GUI em vez do clássico PSQL concha.

Valores percentuais de codificação

Ao usar os URLs de conexão PostGresql, espera-se que ele encontre valores de codificação porcentagem. Ou seja, se houver algum personagem com significado especial dentro do URL, ele deve ser convertido em seu valor percentual de codificação para que as bibliotecas e aplicativos possam interpretá-lo adequadamente.

Aqui está uma pequena lista que você deve ter em mente:

  • (Espaço): %20
  • %: %25
  • &: %26
  • /: %2f
  • :: %3a
  • =: %3D
  • ?: %3f
  • @: %40
  • [: %5b
  • ]: %5d

String de conexão PostGresql

Ao projetar/implantar qualquer aplicativo apoiado pelo banco de dados, uma das primeiras etapas é conectar o aplicativo com o mecanismo de banco de dados adequado. Quando se trata de fornecer os parâmetros de conexão, isso pode ser feito em dois formatos:

Strings de palavra -chave/valor simples

$ host = porta localhost = 5432 dbname = Demo_db Connection_timeout = 60

String de conexão

$ postgreSql: //:@:/[?]
$ postgres: //:@:/[?]

Onde:

  • Identificador de esquema define o protocolo a ser usado. Os valores aceitos são PostGres e PostGresql.
  • Especificações do usuário consulte as credenciais do usuário necessárias para se conectar ao PostgreSQL.
    • Nome de usuário: o nome de usuário do usuário.
    • Senha: a senha do usuário.
  • As especificações do host é a seção da sequência de conexão que descreve o nome do host e a porta para se conectar a:
    • hospedar: O nome do host, endereço IP, nome DNS ou nome resolvido localmente do servidor para se conectar.
    • porta: A porta que o servidor PostgreSQL está ouvindo.
  • O db_name descreve o nome do banco de dados para se conectar.
  • O Adicional_parameters é uma seção que contém parâmetros adicionais que podem afetar o comportamento da conexão. A lista começa com o “?" marca.
    • Pares de parâmetros: a lista de parâmetros consiste em pares de valor-chave. O valor de cada chave é separado por um sinal igual (=). Cada par de valores-chave é separado por amperands (&).

Aqui está um exemplo de URL de conexão PostGresql que incorpora todos esses componentes:

$ postgreSql: // host1: 123, host2: 456/somedb?Target_Session_Attrs = any & Application_name = MyApp

Componentes de Uri de conexão diferentes

Especificação do tipo URL

O URL de conexão é usado para se conectar a um banco de dados PostgreSQL. É importante usar a especificação de protocolo adequada para que os aplicativos e bibliotecas possam interpretar as informações fornecidas no contexto correto.

PostgreSQL aceita os seguintes designadores de esquema de URL:

$ postgreSql: //
$ postgres: //

Usuário e senha

Esta seção do URI contém as credenciais do usuário. A menos que você esteja usando a configuração padrão, esta seção deve ser incluída.

Para especificar apenas o nome de usuário, você pode usar a seguinte estrutura URI:

$ postgres: //@

Se uma senha for necessária, a sintaxe da seção se parece com a seguinte:

$ postgres: //:@

Especificação do host

Esta seção especifica o endereço de rede do servidor PostGresql.

Se o aplicativo tentar a conexão com a porta PostGresql padrão (5432) na máquina local, o URI se parece com o seguinte:

$ Postgers: // localhost

Se for necessário um nome de usuário e uma senha, o URI atualizado se parece com o seguinte:

$ postgres: //: @localhost

Se o servidor PostgreSQL estiver localizado em um host remoto e/ou ouvindo uma porta fora do padrão, a estrutura URI muda drasticamente. Por exemplo, para conectar -se a um servidor PostGresql, localizado em 192.168.100.223 E para ouvir a porta 4444, o Uri de conexão se parece com o seguinte:

$ postgres: //:@192.168.100.223: 4444

Podemos fornecer informações adicionais nesta seção. Por exemplo, os servidores de fallback. Se houver um servidor PostgreSQL de Fallback, em 192.168.100.100 que ouve para a porta 3333, podemos adicioná -lo à seguinte conexão URI:

$ postgres: //:@192.168.100.223: 4444.192.168.100.100: 3333

Neste exemplo, o aplicativo primeiro tenta se conectar a 192.168.100.223: 4444. Após o fracasso, tenta se conectar ao endereço de fallback que é 192.168.100.100: 3333.

Nome do banco de dados

Esta seção lida com o banco de dados para o qual o aplicativo se conecta. No PostgreSQL, você deve se conectar a um banco de dados específico ao estabelecer uma conexão.

O nome do banco de dados deve ser declarado começando com uma barra para a frente (/) e prossegue até o final da linha ou um ponto de interrogação (?).

Por exemplo, para se conectar ao banco de dados Demo_DB Em um servidor PostgreSQL que ouve em 192.168.100.223: 4444, a conexão Uri se parece com o seguinte:

$ postgres: //:@192.168.100.223: 4444/Demo_DB

Parâmetros adicionais

A última parte do URI de conexão é reservada para parâmetros de conexão adicionais. A lista começa com um ponto de interrogação (?) e continua até o final do URI.

Como mencionado anteriormente, os parâmetros são pares de valor-chave. O valor de uma chave é separado por um sinal igual (=) e cada par de valores-chave é separado por um ampersand (&).

Por exemplo, o Connection_timeout O parâmetro declara o tempo limite para a conexão em segundos. Para aplicar um tempo limite de 30 segundos, aplique -o ao parâmetro URI de conexão da seguinte forma:

$ postgres: //:@192.168.100.223: 4444/Demo_DB?Connection_timeout = 30

Outro parâmetro que é sslmode determina a prioridade de uma negociação segura de conexão SSL TCP/IP. Podemos adicioná -lo à seguinte conexão URI:

$ postgres: //:@192.168.100.223: 4444/Demo_DB?Connection_timeout = 30 & sslmode = requer

Confira a documentação do PostgreSQL na lista de parâmetros de conexão disponíveis.

Usando o URI de conexão PostGresql

Nesta seção, temos uma rápida demonstração de usar o URI de conexão PostGresql em ação. Observe que, dependendo da linguagem de programação, módulos, estruturas e outros fatores, a implementação do URI de conexão varia.

Aqui, usamos o URI de conexão com PSQL Para conectar -se ao banco de dados desejado. Geralmente, para se conectar a um banco de dados em PSQL, O comando é o seguinte:

$ psql - -host = - -dbname = --username = --port =

Por exemplo, para se conectar ao banco de dados Demo_DB, hospedado em um servidor local PostgreSQL que ouve na porta 5432 como Postgres, o comando se parece com o seguinte:

$ psql - -host = localhost - -dbname = Demo_db --username = PostGres --port = 5432

Também existem outras maneiras de se conectar a um banco de dados PostgreSQL. Por exemplo, usando a seguinte conexão URI:

$ psql postgres: //:@:/

Usando a estrutura, podemos construir um comando mais simples para conectar ao banco de dados Demo_DB:

$ psql postgres: // postgres@localhost/demo_db

Conclusão

Neste guia, discutimos o URI de conexão PostGresql, como interpretar seus vários componentes e como construir um URI de conexão com um determinado conjunto de informações. O URI de conexão é uma maneira interessante de codificar todas as informações necessárias para uma conexão com um determinado banco de dados em uma única sequência. Também demonstramos como usar um URI de conexão para conectar -se a um banco de dados PostGresql.

Interessado em aprender mais sobre o PostgreSQL? Confira a categoria PostgreSQL que contém centenas de guias e tutoriais sobre vários aspectos do PostgreSQL.