Conexión a una instancia de base de datos que ejecuta el motor de base de datos de PostgreSQL - Amazon Relational Database Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conexión a una instancia de base de datos que ejecuta el motor de base de datos de PostgreSQL

Una vez que Amazon RDS aprovisione su instancia de base de datos, puede usar cualquier aplicación cliente de SQL estándar para conectarse a la instancia. Para mostrar los detalles de una instancia de base de datos de Amazon RDS, puede usar la Consola de administración de AWS, el comando describe-db-instances de la AWS CLI o la operación DescribeDBInstances de la API de Amazon RDS. Necesitará la siguiente información para conectarse:

  • El host o el nombre de host de la instancia de base de datos, como:

    myinstance.123456789012.us-east-1.rds.amazonaws.com
  • El puerto en el que la instancia de base de datos está a la escucha. Por ejemplo, el puerto de PostgreSQL predeterminado es 5432.

  • El nombre de usuario y la contraseña de la instancia de base de datos.

A continuación, se muestran dos formas de conectarse a una instancia de base de datos PostgreSQL. En el primer ejemplo, se usa pgAdmin, una conocida herramienta de administración y desarrollo de código abierto para PostgreSQL. En el segundo ejemplo, se usa psql, una utilidad de línea de comandos que forma parte de una instalación de PostgreSQL.

Uso de pgAdmin para conectarse a una instancia de base de datos de PostgreSQL

Puede usar la herramienta pgAdmin de código abierto para conectarse a una instancia de base de datos PostgreSQL.

Para conectarse a una instancia de base de datos PostgreSQL con pgAdmin

  1. Busque el punto de enlace (nombre de DNS) y el número de puerto para la instancia de base de datos.

    1. Abra la consola de RDS y, a continuación, elija Databases (Bases de datos) para mostrar una lista de las instancias de base de datos.

    2. Seleccione el nombre de la instancia de base de datos de PostgreSQL para mostrar sus detalles.

    3. En la pestaña Connectivity & security (Conectividad y seguridad), copie el punto de enlace. También anote el número de puerto. Necesita el punto de enlace y el número de puerto para conectarse a la instancia de base de datos.

      
                                Conexión a la instancia de base de datos PostgreSQL
  2. Instale pgAdmin desde http://www.pgadmin.org/. Puede descargar y usar pgAdmin sin tener una instancia local de PostgreSQL en su equipo cliente.

  3. Lance la aplicación pgAdmin en su equipo cliente.

  4. En la pestaña Dashboard (Panel), elija Add New Server (Añadir nuevo servidor).

  5. En el cuadro de diálogo Create - Server (Crear - Servidor), escriba un nombre en la pestaña General para identificar el servidor en pgAdmin.

  6. En la pestaña Connection (Conexión), escriba la siguiente información de su instancia de base de datos:

    • En Host, especifique el punto de enlace, como mypostgresql.c6c8dntfzzhgv0.us-east-2.rds.amazonaws.com.

    • En Port (Puerto), escriba el puerto asignado.

    • En Username (Nombre de usuario), escriba el nombre de usuario que especificó cuando creó la instancia de base de datos.

    • En Password (Contraseña), escriba la contraseña que especificó cuando creó la instancia de base de datos.

  7. Seleccione Save (Guardar).

    Si tiene problemas para conectarse, consulte Solución de problemas de conexiones a la instancia de PostgreSQL.

  8. Para obtener acceso a una base de datos en el navegador de pgAdmin, expanda Servers (Servidores), la instancia de base de datos y Databases (Bases de datos). Elija el nombre de base de datos de la instancia de base de datos.

  9. Para abrir un panel en el que puede especificar comandos SQL, elija Tools (Herramientas), Query Tool (Herramienta de consulta).

Uso de psql para conectarse a una instancia de base de datos PostgreSQL

Puede usar una instancia local de la utilidad de línea de comandos psql para conectarse a una instancia de base de datos PostgreSQL. Necesitará que PostgreSQL o el cliente de psql estén instalados en el equipo cliente. Para conectarse a la instancia de base de datos PostgreSQL usando psql, debe proporcionar la información del host y las credenciales de acceso.

Use uno de los siguientes formatos para conectarse a una instancia de base de datos PostgreSQL en Amazon RDS. Cuando se conecte, se le pedirá una contraseña. En los trabajos por lotes o scripts, use la opción --no-password. Esta opción está establecida para toda la sesión.

nota

Un intento de conexión con --no-password falla cuando el servidor requiere autenticación con contraseña y una contraseña no está disponible desde otras fuentes. Para obtener más información, consulte la documentación de psql.

Si es la primera vez que se conecta a esta instancia de base de datos, intente utilizar el nombre predeterminado dela base de datos de postgres para la opción --dbname.

En Unix, utilice el formato siguiente.

psql \ --host=<DB instance endpoint> \ --port=<port> \ --username=<master username> \ --password \ --dbname=<database name>

En Windows, utilice el formato siguiente.

psql ^ --host=<DB instance endpoint> ^ --port=<port> ^ --username=<master username> ^ --password ^ --dbname=<database name>

Por ejemplo, el siguiente comando se conecta a una base de datos denominada mypgdb en una instancia de base de datos PostgreSQL denominada mypostgresql usando credenciales ficticias.

psql --host=mypostgresql.c6c8mwvfdgv0.us-west-2.rds.amazonaws.com --port=5432 --username=awsuser --password --dbname=mypgdb

Solución de problemas de conexiones a la instancia de PostgreSQL

Error – FATAL: el nombre de la base de datos no existe

Si al intentar establecer la conexión recibe un error como FATAL: database name does not exist, intente utilizar el nombre de base de datos predeterminado postgres para la opción --dbname.

Error – No se pudo conectar al servidor: se ha agotado el tiempo de espera

Si no puede conectarse a la instancia de base de datos, el error más frecuente es Could not connect to server: Connection timed out. Si recibe este error, proceda de la siguiente forma:

  • Compruebe que el nombre de host usado es el punto de enlace de la instancia de base de datos y que el número de puerto usado es correcto.

  • Asegúrese de que la accesibilidad pública de la instancia de base de datos está establecida en Yes (Sí) para permitir conexiones externas. Para modificar el ajuste Public access (Acceso público), consulte Modificación de una instancia de base de datos de Amazon RDS.

  • Compruebe que el grupo de seguridad asignado a la instancia de base de datos cuenta con las reglas necesarias para permitir el acceso de su conexión a través de cualquier firewall. Por ejemplo, si la instancia de base de datos se creó utilizando el puerto predeterminado 5432, es posible que su empresa tenga reglas de firewall que bloquean las conexiones con ese puerto desde los dispositivos externos de la empresa.

    Para solucionar esto, modifique la instancia de base de datos de modo que use un puerto diferente. Asegúrese también de que el grupo de seguridad aplicado a la instancia de base de datos permite las conexiones en el nuevo puerto. Para modificar el ajuste Database port (Puerto de base de datos), consulte Modificación de una instancia de base de datos de Amazon RDS.

  • Véase también Errores con las reglas de acceso de grupos de seguridad.

Errores con las reglas de acceso de grupos de seguridad

El problema de conexión más frecuente se suele producir con las reglas de acceso del grupo de seguridad asignado a la instancia de base de datos. Si al crear la instancia de base de datos usó el grupo de seguridad de base de datos predeterminado, lo más probable es que ese grupo no tuviera las reglas que le permiten obtener acceso a la instancia.

Para que funcione la conexión, el grupo de seguridad que asignó a la instancia de base de datos al crearla debe permitir el acceso a esa instancia de base de datos. Por ejemplo, si la instancia de base de datos se creó en una VPC, debe tener un grupo de seguridad de VPC que autorice las conexiones. Compruebe si la instancia de base de datos se creó utilizando un grupo de seguridad que no autoriza las conexiones desde el dispositivo o la instancia de Amazon EC2 en la que se está ejecutando la aplicación.

Puede añadir o editar una regla de entrada en el grupo de seguridad. En Source (Origen), elegir My IP (Mi IP) permite el acceso a la instancia de base de datos desde la dirección IP detectada en su navegador. Para obtener más información, consulte Proporcionar acceso a la instancia de base de datos en la VPC mediante la creación de un grupo de seguridad.

Igualmente, si la instancia de base de datos se creó fuera de una VPC, debe tener un grupo de seguridad de base de datos que autorice esas conexiones.

Para obtener más información acerca de los grupos de seguridad de Amazon RDS, consulte Control de acceso con grupos de seguridad.