Help Center > > FAQs> Database Connection> How Can I Connect to a MySQL Database Through JDBC?

How Can I Connect to a MySQL Database Through JDBC?

Updated at: Jun 09, 2021 GMT+08:00

Although the SSL certificate is optional if you choose to connect to a database through Java database connectivity (JDBC), download an SSL certificate to encrypt the connections for security. SSL is disabled by default for MySQL DB instances. You can enable SSL by referring to Configuring an SSL Connection. SSL encrypts connections to databases but it increases the connection response time and CPU usage, so enabling it is not recommended.

Prerequisites

Familiarize yourself with:

  • Computer basics.
  • Java programming language.
  • JDBC knowledge.

Connection with the SSL Certificate

Download the SSL certificate and verify the certificate before connecting to databases.

In the DB Information area on the Basic Information page, click in the SSL field to download the root certificate or certificate bundle.

  1. Connect to the RDS MySQL DB instance through JDBC.

    jdbc:mysql://<instance_ip>:<instance_port>/<database_name>?sslmode=verify-full&sslrootcert=<ca.pem>
    Table 1 Parameter description

    Parameter

    Description

    <instance_ip>

    If you attempt to access the RDS DB instance through an ECS, set instance_ip to the floating IP address displayed on the Basic Information page of the DB instance to which you intend to connect.

    If you access the RDS DB instance through an EIP, set instance_ip to the EIP that has been bound to the DB instance.

    <instance_port>

    Enter the database port displayed on the Basic Information page. The default port is 3306.

    <database_name>

    Enter the name of the database to which you intend to connect. The default database name is mysql.

    sslmode

    Enter the SSL connection mode. The default mode is verify-full.

    sslrootcert

    Enter the directory of the CA certificate for the SSL connection. The certificate should be stored in the directory where the command is executed.

    Example script in Java:

    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.ResultSet; 
    import java.sql.Statement;
    import java.sql.SQLException; 
     
    public class MyConnTest { 
        final public static void main(String[] args) { 
            Connection conn = null; 
             Statement stat = null;
            // set sslmode here. 
            // with ssl certificate and path. 
            String url = "jdbc:mysql://192.168.0.225:3306/my_db_test?sslmode=verify-full&sslrootcert=/home/Ruby/ca.pem"; 
     
            try { 
                Class.forName("com.mysql.jdbc.Driver"); 
                conn = DriverManager.getConnection(url, "root", "password"); 
                System.out.println("Database connected"); 
     
                Statement stmt = conn.createStatement(); 
                  String sql = "SELECT * FROM mytable WHERE columnfoo = 500";
                ResultSet rs = stmt.executeQuery sql); 
                while (rs.next()) { 
                    System.out.println(rs.getString(1)); 
                } 
     
                rs.close(); 
                stmt.close(); 
                conn.close(); 
            } catch (Exception e) { 
                e.printStackTrace(); 
                System.out.println("Test failed"); 
            } finally { 
                // release resource .... 
            } 
        } 
    }

Connection Without the SSL Certificate

You do not need to download the SSL certificate because certificate verification on the server is not required.

  1. Connect to the RDS MySQL DB instance through JDBC.

    jdbc:mysql://<instance_ip>:<instance_port>/<database_name>?sslmode=require
    Table 2 Parameter description

    Parameter

    Description

    <instance_ip>

    If you attempt to access the RDS DB instance through an ECS, set instance_ip to the floating IP address displayed on the Basic Information page of the DB instance to which you intend to connect.

    If you attempt to access the DB instance through an EIP, set instance_ip to the EIP that has been bound to the DB instance.

    <instance_port>

    Database port displayed on the Basic Information page. Default value: 3306

    <database_name>

    Name of the database to which you intend to connect. Default value: mysql

    sslmode

    SSL connection mode. require indicates that data needs to be encrypted.

    Example script in Java:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class MyConnTest {
    	final public static void main(String[] args) {
    		Connection conn = null;
    		// set sslmode here.
    		// no ssl certificate, so do not specify path.
    		String url = "jdbc:mysql://192.168.0.225:3306/my_db_test?sslmode=require";
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			conn = DriverManager.getConnection(url, "root", "password");
    			System.out.println("Database connected");
    
    			Statement stmt = conn.createStatement();
    			ResultSet rs = stmt.executeQuery("SELECT * FROM mytable WHERE columnfoo = 500");
    			while (rs.next()) {
    				System.out.println(rs.getString(1));
    			}
    			rs.close();
    			stmt.close();
    			conn.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    			System.out.println("Test failed");
    		} finally {
    			// release resource ....
    		}
    	}
    }

Did you find this page helpful?

Submit successfully!

Thank you for your feedback. Your feedback helps make our documentation better.

Failed to submit the feedback. Please try again later.

Which of the following issues have you encountered?







Please complete at least one feedback item.

Content most length 200 character

Content is empty.

OK Cancel