inux(Ubuntu)上で、Mono + C# を使って MySQL に接続する
Linux(Ubuntu)上で、Mono + C# を使って MySQL に接続するには、以下の手順で進めることができます。
✅ 必要なもの
- Mono
MySql.Dataライブラリ(MySQL公式の .NET 用コネクタ)
目次
🔧 ステップ 1:Mono をインストール
Ubuntu ターミナルで以下を実行します:
sudo apt update sudo apt install mono-complete
📦 ステップ 2:MySQL Connector をインストール
NuGet から MySql.Data を取得します:
mkdir MyApp cd MyApp dotnet new console -lang C# # ただし Mono なので .NET Core でなく NuGet CLI を使う場合: nuget install MySql.Data
NuGet CLI が無ければ以下で導入:
sudo apt install nuget
📝 ステップ 3:C# コードを書く(例)
using System;
using MySql.Data.MySqlClient;
class Program
{
static void Main()
{
string connStr = "server=localhost;user=root;database=testdb;port=3306;password=your_password;";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
conn.Open();
Console.WriteLine("MySQLに接続成功!");
string sql = "SELECT * FROM your_table;";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr[0] + " -- " + rdr[1]);
}
rdr.Close();
}
catch (Exception ex)
{
Console.WriteLine("接続失敗: " + ex.Message);
}
finally
{
conn.Close();
}
}
}
🛠 ステップ 4:ビルドと実行
MySQLライブラリのDLLを参照してコンパイル:
mcs -r:MySql.Data.dll Program.cs mono Program.exe
※ MySql.Data.dll のパスは nuget 経由で取得したフォルダにあります(例:MySql.Data.8.0.32/lib/net45/)。
コンパイル
以下は、Mono + C# + MySQL 用の Makefile のサンプルです。nuget でインストールした MySql.Data.dll を参照し、C# ソースコードをビルド&実行します。
✅ 前提ディレクトリ構成(例)
MyApp/
├── Program.cs
├── Makefile
└── packages/
└── MySql.Data.8.0.32/
└── lib/
└── net45/
└── MySql.Data.dll
📄 Makefile
# パス設定 SRC = Program.cs OUT = Program.exe MYSQL_DLL = packages/MySql.Data.8.0.32/lib/net45/MySql.Data.dll # ビルドターゲット all: build build: mcs -r:$(MYSQL_DLL) -out:$(OUT) $(SRC) run: build mono $(OUT) clean: rm -f $(OUT)
🏃♂️ 使用方法
- MySql.Data を NuGet 経由で取得:
nuget install MySql.Data -OutputDirectory packages Program.csとMakefileを同じディレクトリに置く。- 以下のコマンドでビルド&実行:
make run
MySql.Data のバージョンが異なる場合は、MYSQL_DLL のパスを適宜変更してください。
