Comprender y usar la cadena de conexión Postgres

Comprender y usar la cadena de conexión Postgres
PostgreSQL es un sistema de base de datos de código abierto, de código abierto. Aprovecha el lenguaje SQL con características adicionales para una mejor seguridad y escala de cargas de trabajo. PostgreSQL es conocido por su fiabilidad, integridad de datos, extensibilidad y conjunto de características robustas. Obtenga más información sobre PostgreSQL.

En esta guía, echaremos un vistazo a las URL de conexión en PostgreSQL.

Requisitos previos

Para realizar los pasos que se demuestran en esta guía, necesita los siguientes componentes:

  • Un entorno de Linux que funciona. Por ejemplo, consulte esta guía en la instalación de Ubuntu en Virtualbox.
  • Última versión instalada y configurada de PostgreSQL. Consulte la instalación de PostgreSQL en Ubuntu.

Opcionalmente, puede configurar un front-end postgreSQL para trabajar con una herramienta GUI en lugar del clásico PSQL caparazón.

Valores porcentuales de codificación

Al usar las URL de conexión PostgreSQL, se espera que se encuentre con valores de porcentaje de codificación. Es decir, si hay algún carácter con un significado especial dentro de la URL, debe convertirse a su valor porcentual de codificación para que las bibliotecas y las aplicaciones puedan interpretarlo correctamente.

Aquí hay una lista breve que debe tener en cuenta:

  • (espacio): %20
  • %: %25
  • &: %26
  • /: %2F
  • :: %3a
  • =: %3d
  • ?: %3F
  • @: %40
  • [: %5b
  • ]: %5d

Cadena de conexión PostgreSQL

Al diseñar/implementar cualquier aplicación respaldada por la base de datos, uno de los primeros pasos es conectar la aplicación con el motor de base de datos adecuado. Cuando se trata de proporcionar los parámetros de conexión, se puede hacer en dos formatos:

Cadenas de palabras clave/valor simples

$ host = localhost puerto = 5432 dbname = demo_db conection_timeout = 60

Cadena de conexión

$ Postgresql: //:@:/[[?]
$ Postgres: //:@:/[?]

Dónde:

  • El identificador de esquema define el protocolo que se utilizará. Los valores aceptados son post -put y postgresql.
  • Las especificaciones del usuario se refieren a las credenciales del usuario que deben conectarse al PostgreSQL.
    • Nombre de usuario: el nombre de usuario del usuario.
    • Contraseña: la contraseña del usuario.
  • Las especificaciones del host es la sección de la cadena de conexión que describe el nombre de host y el puerto para conectarse a:
    • anfitrión: El nombre de host, la dirección IP, el nombre de DNS o el nombre localmente resolutable del servidor para conectarse al.
    • puerto: El puerto que está escuchando el servidor PostgreSQL.
  • El db_name describe el nombre de la base de datos para conectarse a.
  • El parámetros adicionales es una sección que contiene parámetros adicionales que pueden afectar el comportamiento de conexión. La lista comienza con el "?" marca.
    • Pares de parámetros: la lista de parámetros consta de pares de valor clave. El valor de cada clave está separado por un signo igual (=). Cada par de valores clave está separado por amperands (&).

Aquí hay un ejemplo de una URL de conexión PostgreSQL que incorpora todos estos componentes:

$ Postgresql: // host1: 123, host2: 456/somedb?Target_session_attrs = Any & Application_Name = MyApp

Diferentes componentes de URI de conexión

Especificación de tipo URL

La URL de conexión se utiliza para conectarse a una base de datos PostgreSQL. Es importante utilizar la especificación de protocolo adecuada para que las aplicaciones y las bibliotecas puedan interpretar la información proporcionada en el contexto correcto.

PostgreSQL acepta los siguientes designadores de esquema de URL:

$ PostgreSQL: //
$ Postgres: //

Nombre de usuario y contraseña

Esta sección del URI contiene las credenciales del usuario. A menos que esté utilizando la configuración predeterminada, esta sección debe incluirse.

Para especificar solo el nombre de usuario, puede usar la siguiente estructura de URI:

$ Postgres: //@

Si es necesaria una contraseña, la sintaxis de la sección se ve así:

$ Postgres: //:@

Especificación del host

Esta sección especifica la dirección de red del servidor PostgreSQL.

Si la aplicación debe intentar la conexión al puerto PostgreSQL predeterminado (5432) en la máquina local, el URI se ve así:

$ Postgers: // localhost

Si se necesita un nombre de usuario y una contraseña, el URI actualizado se ve así:

$ Postgres: //: @localhost

Si el servidor PostgreSQL se encuentra en un host remoto y/o escucha un puerto no estándar, la estructura de URI cambia drásticamente. Por ejemplo, para conectarse a un servidor PostgreSQL que se encuentra en 192.168.100.223 y para escuchar el puerto 4444, la conexión Uri se ve así:

$ Postgres: //:@192.168.100.223: 4444

Podemos proporcionar información adicional en esta sección. Por ejemplo, los servidores alternativos. Si hay un servidor postgresql de alternativa en 192.168.100.100 que escucha al puerto 3333, podemos agregarlo a la siguiente conexión URI:

$ Postgres: //:@192.168.100.223: 4444,192.168.100.100: 3333

En este ejemplo, la aplicación primero intenta conectarse 192.168.100.223: 4444. Tras el fracaso, intenta conectarse a la dirección de respaldo que es 192.168.100.100: 3333.

Nombre de la base de datos

Esta sección trata con la base de datos a la que se conecta la aplicación. En PostgreSQL, debe conectarse a una base de datos específica al establecer una conexión.

El nombre de la base de datos se declarará comenzando con una barra de reenvío (/) y continúa hasta el final de la línea o un signo de interrogación (?).

Por ejemplo, para conectarse a la base de datos demo_db en un servidor PostgreSQL que escucha en 192.168.100.223: 4444, la conexión Uri se ve así:

$ Postgres: //:@192.168.100.223: 4444/demo_db

Parámetros adicionales

La última parte de la conexión URI está reservada para parámetros de conexión adicionales. La lista comienza con un signo de interrogación (?) y continúa hasta el final del URI.

Como se mencionó anteriormente, los parámetros son pares de valor clave. El valor de una clave está separado por un signo igual (=) y cada par de valores clave está separado por un ampersand (&).

Por ejemplo, el el tiempo de conexión expiro El parámetro declara el tiempo de espera para la conexión en segundos. Para aplicar un tiempo de espera de 30 segundos, aplíquelo al parámetro URI de conexión de la siguiente manera:

$ Postgres: //:@192.168.100.223: 4444/demo_db?Connection_timeout = 30

Otro parámetro que es sslmode Determina la prioridad de una negociación segura de conexión SSL TCP/IP. Podemos agregarlo a la siguiente conexión URI:

$ Postgres: //:@192.168.100.223: 4444/demo_db?Connection_timeout = 30 & sslmode = requerir

Consulte la documentación de PostgreSQL en la lista de parámetros de conexión disponibles.

Usando el URI de conexión PostgreSQL

En esta sección, tenemos una demostración rápida del uso del URI de conexión PostgreSQL en acción. Tenga en cuenta que, dependiendo del lenguaje de programación, los módulos, los marcos y otros factores, la implementación del URI de conexión varía.

Aquí usamos la conexión URI con PSQL para conectarse a la base de datos deseada. En general, conectarse a una base de datos en PSQL, El comando es el siguiente:

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

Por ejemplo, para conectarse a la base de datos Demo_DB que se aloja en un servidor local PostgreSQL que escucha al puerto 5432 como Postgres, el comando se ve así:

$ psql --host = localhost --dbname = demo_db --username = postgrres --port = 5432

También hay otras formas de conectarse a una base de datos PostgreSQL. Por ejemplo, usando la siguiente conexión URI:

$ PSQL Postgres: //:@://

Usando la estructura, podemos construir un comando más simple para conectarse a la base de datos Demo_DB:

$ PSQL Postgres: // Postgres@localhost/demo_db

Conclusión

En esta guía, discutimos el URI de conexión PostgreSQL, cómo interpretar sus diversos componentes y cómo construir un URI de conexión con un conjunto dado de información. El URI de conexión es una forma interesante de codificar toda la información requerida para una conexión a una base de datos dada dentro de una sola cadena. También demostramos cómo usar un URI de conexión para conectarse a una base de datos PostgreSQL.

Interesado en aprender más sobre PostgreSQL? Echa un vistazo a la categoría PostgreSQL que contiene cientos de guías y tutoriales sobre varios aspectos de PostgreSQL.