本文介紹如何通過Java、Python或C的應用程式訪問RDS MySQL資料庫。
參數說明
範例程式碼中的參數說明如下。
參數 | 說明 |
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 PyMySQLPython2安裝命令:
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);
}
串連失敗
串連失敗時,建議根據報錯資訊來解決串連問題。
更多串連方案
您可以通過Function Compute訪問ApsaraDB RDS for MySQL,在函數中配置Virtual Private Cloud相關資訊並在資料庫中配置白名單,實現VPC內資料庫的訪問和操作。具體操作,請參見訪問RDS MySQL樣本。
更多訪問RDS MySQL資料庫的樣本,請參見Function ComputePython訪問MySQL資料庫。