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
のパスを適宜変更してください。