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

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.

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 user name> \ --password \ --dbname=<database name>

En Windows, utilice el formato siguiente.

psql ^ --host=<DB instance endpoint> ^ --port=<port> ^ --username=<master user name> ^ --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

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 forma siguiente:

  • 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í).

  • 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ó con el puerto predeterminado 5432, es posible que su compañía tenga reglas de firewall que bloquean las conexiones a ese puerto desde los dispositivos de la empresa.

    Para solucionar este error, modifique la instancia de base de datos para 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.

  • Compruebe si la instancia de base de datos se creó usando un grupo de seguridad que no autoriza las conexiones desde el dispositivo o la instancia Amazon EC2 en la que se está ejecutando la aplicación. 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.

    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.

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 obtener más información acerca de los grupos de seguridad de Amazon RDS, consulte Control de acceso con grupos de seguridad.

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