Cómo conectarse a la base de datos de AWS con Java Database Connection utilizando un archivo de clave

Tengo instancias de amazon ec2 y rds que se ejecutan en una nube privada virtual. El rds contiene una base de datos mysql. Puedo conectarme a la base de datos rds con mysql workbench ingresando la información de la base de datos (host, número de puerto, base de datos, usuario) y también los detalles ssh para la instancia ec2 (host, puerto #, usuario, archivo de claves).

Ahora estoy escribiendo un programa Java que necesita acceder a la base de datos. Estoy confundido sobre cómo se puede hacer esto con la biblioteca JDBC (conexión de base de datos Java). Hay ejemplos en línea sobre el uso de JDBC, sin embargo, no parecen abordar ciertos problemas que estoy enfrentando.

Por ejemplo, para conectarme a mi base de datos, también debo ingresar a la instancia ec2. En segundo lugar, mi instancia de ec2 utiliza un archivo de clave en lugar de una contraseña y no he visto ningún ejemplo de cómo implementar esto en el código.

Realmente agradecería cualquier consejo o ejemplo de código relacionado con este problema. Avíseme si necesito aclarar algo. Gracias

Respuesta 1

Si puedes conectarte con MySQL Workbench, prácticamente tienes todo configurado. Esto significa que su grupo de seguridad está abierto y que está listo para conectarse de forma remota. No necesita SSH en su servidor EC2. Solo necesita su IP pública o DNS ( host ), el puerto que está utilizando y su nombre de usuario y contraseña de la base de datos. Entonces, solo necesita hacer algo como el siguiente código.

Class.forName("com.mysql.jdbc.Driver");  
Connection conn = DriverManager.getConnection(  
"jdbc:mysql://{public dns or ip}:{port}/{database name}","{username}","{password}");
Statement stmt = conn.createStatement();  
ResultSet rs = stmt.executeQuery("select * from table");

Esto debería ser suficiente para conectarte a tu base de datos. Por supuesto, cambie el {}con su valor respectivo. Si necesita más información, puede consultar esta página .

Respuesta: 2

Mi paquete de código morrisJCh5Sec2; import java.util.Scanner; public class Ch5Sec2 {public static int collectInteger (Propósito de cadena, int mínimo, int máximo) {Entrada del escáner = nuevo ...

Estoy tratando de crear la estructura de datos de un HashMap () en Java. El HashMap tiene que funcionar para un máximo de N = 1000 operaciones y las claves son solo enteros positivos. Lo que hice es lo siguiente: ...

Estoy ejecutando 4 instancias de aplicaciones basadas en Spring Boot Integration en 4 servidores diferentes. El proceso es: Leer archivos XML uno por uno en una carpeta compartida. Procesar el archivo (verificar estructura, contenido ...), ...

Estoy tratando de clonar una lista en una nueva lista y establecer una propiedad en la nueva lista. Estoy tratando de usar Java8 Stream, ya que simplifica la clonación. Mi código funciona pero le da olor a este código de Sonar: Local ...