このトピックでは、Java、Python、または C アプリケーションを使用して ApsaraDB RDS for MySQL インスタンスに接続する方法について説明します。
パラメーター
次の表は、サンプルコードのパラメーターについて説明しています。
パラメーター | 説明 |
ホスト | RDS インスタンスの内部エンドポイントまたはパブリックエンドポイント。
RDS インスタンスの内部エンドポイントとパブリックエンドポイント、およびポートを表示する方法の詳細については、「ApsaraDB RDS for MySQL インスタンスの内部エンドポイントとパブリックエンドポイント、およびポート番号を表示および変更する」をご参照ください。 |
ポート | 内部ネットワーク経由で 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();
}
}
}Python 3 のサンプルコード
最初に PyMySQL をインストールします。
Python 3 を使用する場合は、
pip3 install PyMySQLコマンドを実行します。Python 2 を使用する場合は、
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);
}
トラブルシューティング
接続に失敗した場合は、返されたエラー情報に基づいてトラブルシューティングを行うことをお勧めします。詳細については、「RDS インスタンスに接続できない問題を解決する」をご参照ください。
関連情報
関数と RDS for MySQL インスタンスのホワイトリストに VPC を構成することで、Function Compute を使用して ApsaraDB RDS for MySQL インスタンスに接続することもできます。詳細については、「ApsaraDB RDS for MySQL データベースにアクセスする」をご参照ください。
RDS for MySQL インスタンスへの接続方法のその他の例については、Function Compute での Python による MySQL へのアクセス をご覧ください。