このトピックでは、MySQL.Data ライブラリを使用して C# アプリケーションを開発する方法について説明します。
前提条件
LindormTable のバージョンが 2.6.2 以降であること。 LindormTable のバージョンを表示またはアップグレードする方法の詳細については、「LindormTable のリリースノート」および「Lindorm インスタンスのマイナーエンジンバージョンのアップグレード」をご参照ください。
インスタンスで MySQL 互換機能が有効になっていること。 詳細については、「MySQL 互換機能の有効化」をご参照ください。
ご利用のクライアントの IP アドレスが、ご利用の Lindorm インスタンスのホワイトリストに追加されていること。 詳細については、「ホワイトリストの設定」をご参照ください。
操作手順
Dotnet をインストールします。 Dotnet のインストールパッケージは、Dotnet の公式 Web サイトからダウンロードできます。
次のコードを実行して、Dotnet プロジェクトを作成します。
dotnet new console --framework net7.0次のコードを実行して、MySQL.Data ライブラリの依存関係を追加します。
dotnet add package MySql.Data -v 8.0.11接続パラメーターを設定します。
string connStr = "server=ld-uf6k8yqb741t3****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com;UID=user;database=default;port=33060;password=test";パラメーター
パラメーター
説明
server
LindormTable の MySQL 互換エンドポイント。 エンドポイントの取得方法の詳細については、「エンドポイントの表示」をご参照ください。
重要アプリケーションが ECS インスタンスにデプロイされている場合は、VPC を使用して Lindorm インスタンスに接続することを推奨します。これにより、セキュリティが向上し、ネットワーク遅延が低減します。
アプリケーションがローカルにデプロイされている場合、パブリックネットワーク経由で Lindorm インスタンスに接続するには、事前にコンソールでパブリックエンドポイントを有効にする必要があります。エンドポイントを有効にするには、コンソールで を選択します。Wide Table Engine タブで、Enable Public Endpoint をクリックします。
VPC 経由で Lindorm インスタンスにアクセスする場合は、MySQL 互換性のために server パラメーターを VPC アドレスに設定します。パブリックネットワーク経由で Lindorm インスタンスにアクセスする場合は、MySQL 互換性のために server パラメーターを Internet アドレスに設定します。
UID
ユーザーパスワードを忘れた場合は、LindormTable クラスター管理システムでリセットできます。 詳細については、「ユーザーパスワードの変更」をご参照ください。
password
database
接続先のデータベースの名前。 デフォルトでは、クライアントは default という名前のデータベースに接続されます。
port
MySQL を使用して LindormTable にアクセスするためのポート。 このパラメーターの値は 33060 に固定されています。
接続を作成し、ワイドテーブル SQL 構文を使用して LindormTable を操作します。 次の例は、すべてのデータベースをクエリする方法を示しています。
MySqlConnection conn = new MySqlConnection(connStr); try { Console.WriteLine("Connecting to MySQL..."); conn.Open(); string sql = "show databases;"; MySqlCommand cmd = new MySqlCommand(sql, conn); MySqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(rdr[0]); } rdr.Close(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } conn.Close(); Console.WriteLine("Done.");
完全な例
using System;
using MySql.Data.MySqlClient;
namespace connectLindorm
{
class Program
{
static void Main(string[] args)
{
// server を LindormTable の MySQL 互換エンドポイントに設定します。
// user を LindormTable のユーザー名に設定します。
// database を接続先のデータベース名に設定します。
// password を LindormTable のパスワードに設定します。
// port を LindormTable の MySQL プロトコル用のポートに設定します。 値は 33060 に固定されています。
string connStr = "server=ld-uf6k8yqb741t3****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com;UID=user;database=default;port=33060;password=test";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
Console.WriteLine("Connecting to MySQL...");
conn.Open();
string sql = "show databases";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr[0]);
}
rdr.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
conn.Close();
Console.WriteLine("Done.");
}
}
}現在のインスタンスに default という名前のデータベースのみが含まれている場合、次の結果が返されます。
Connecting to MySQL...
default
information_schema
Done.