inux(Ubuntu)上で、Mono + C# を使って MySQL に接続する

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)

🏃‍♂️ 使用方法

  1. MySql.Data を NuGet 経由で取得: nuget install MySql.Data -OutputDirectory packages
  2. Program.csMakefile を同じディレクトリに置く。
  3. 以下のコマンドでビルド&実行: make run

MySql.Data のバージョンが異なる場合は、MYSQL_DLL のパスを適宜変更してください。

よかったらシェアしてね!
目次