本文介绍如何通过Java、Python或C的应用程序访问RDS数据库。
参数说明
示例代码中的参数说明如下。
参数 | 说明 |
Host | RDS实例的内网地址或外网地址。
关于如何查看RDS实例的内外网地址及端口信息,请参见查看或修改内外网地址和端口。 |
Port | 若使用内网连接,需输入RDS实例的内网端口。若使用外网连接,需输入RDS实例的外网端口。 |
myDatabase | 目标数据库名称。 |
myUsername | 要访问RDS实例的账号名称。 |
myPassword | 账号对应的密码。 |
示例代码
说明
以下代码以在数据库中查询名为courses表为例,实际执行代码时,请按实际情况填写。
Java示例代码:
说明以Maven项目为例,请先在pom.xml文件中添加DriverManager依赖,代码示例:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency>
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseConnection { public static void main(String args[]) { String connectionUrl= "jdbc:mysql://<Host>:<Port>/<myDatabase>"; ResultSet resultSet; try (Connection connection=DriverManager.getConnection(connectionUrl,"<myUsername>","<myPassword>"); Statement statement = connection.createStatement()) { String selectSql = "SELECT * FROM `courses`"; //输入希望执行的SQL。 resultSet = statement.executeQuery(selectSql); while (resultSet.next()) { System.out.println(resultSet.getString("name")); } } catch (SQLException e) { e.printStackTrace(); } } }
Python3示例代码:
说明请先安装PyMySQL。
Python3安装命令:
pip3 install PyMySQL
Python2安装命令:
pip install pymysql==0.9.3
import pymysql connection = pymysql.connect(host='<Host>', port=<Port>, user='<myUsername>', passwd='<myPassword>', db='<myDatabase>') try: with connection.cursor() as cursor: sql = "SELECT * FROM `courses`" cursor.execute(sql) for result in cursor: print(result) finally: connection.close()
C示例代码:
说明请先安装mysql.h头文件,以CentOS为例,执行如下命令:
sudo yum install mysql-devel
#include <stdio.h> #include <mysql.h> #include <string.h> int main(void) { MYSQL *t_mysql; MYSQL_RES *res = NULL; MYSQL_ROW row; char *query_str = NULL; int rc, i, fields; int rows; char select[] = "select * from courses"; // 输入希望执行的SQL。 t_mysql = mysql_init(NULL); if(NULL == t_mysql){ printf("init failed\n"); } if(NULL == mysql_real_connect(t_mysql, "<Host>", "<myUsername>", "<myPassword>", "<myDatabase>", <Port>, NULL, 0)){ printf("connect failed\n"); } if(mysql_real_query(t_mysql, select, strlen(select)) != 0){ printf("select failed\n"); } res = mysql_store_result(t_mysql); if (NULL == res) { printf("mysql_restore_result(): %s\n", mysql_error(t_mysql)); return 0; } fields = mysql_num_fields(res); while ((row = mysql_fetch_row(res))) { for (i = 0; i < fields; i++) { printf("%s\t", row[i]); } printf("\n"); } mysql_close(t_mysql); }
连接失败
连接失败时,建议根据报错信息来解决连接问题。