MySQL NET Connector で MariaDB 10.3 に接続してみる


MariaDB では Connector/C, Connecotr/J, Connector/ODBC, Connector/Node.js が提供されていますが,現時点では Connector/NET は提供されていません。
MySQL用Connectorで接続可能かテストしてみました。

テスト環境

  • MySQL Connector/NET 8.0.15
  • MariaDB Server 10.3.14
  • Microsoft .NET Framework 4.6.1 SDK
  • Visual Studio Community 2019

サンプルコード

using System;
using System.Data;

using MySql.Data;
using MySql.Data.MySqlClient;

public class Tutorial2
{
    public static void Main()
    {
        string connStr = "server=localhost;user=root;password=password;database=employees;port=3306;";
        MySqlConnection conn = new MySqlConnection(connStr);
        try
        {
            Console.WriteLine("Connecting to MariaDB...");
            conn.Open();

            string sql = "SELECT * FROM employees.employees LIMIT 10;";
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            MySqlDataReader rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                Console.WriteLine(rdr[0] + " -- " + rdr[1]);
            }
            Console.ReadKey();
            rdr.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }

        conn.Close();
        Console.WriteLine("Done.");
    }
}

テスト結果

MySQL 用のサンプルデータベース

を MariaDB Server に読み込んで,サンプルコードを実行した結果が以下のとおりです。

Connecting to MariaDB...
10001 -- 9/2/1953 12:00:00 AM
10002 -- 6/2/1964 12:00:00 AM
10003 -- 12/3/1959 12:00:00 AM
10004 -- 5/1/1954 12:00:00 AM
10005 -- 1/21/1955 12:00:00 AM
10006 -- 4/20/1953 12:00:00 AM
10007 -- 5/23/1957 12:00:00 AM
10008 -- 2/19/1958 12:00:00 AM
10009 -- 4/19/1952 12:00:00 AM
10010 -- 6/1/1963 12:00:00 AM

ビルドの際に,以下のようなエラーが発生する場合は,

Severity    Code    Description Project File    Line    Suppression State
Error   CS0246  The type or namespace name 'MySql' could not be found
 (are you missing a using directive or an assembly reference?)  
ConsoleApp1 C:\Users\foo\source\repos\ConsoleApp1\ConsoleApp1\Program.cs    3   Active

から,MySql.Data.dll をサウンロードし,Project - Add Reference で MySql.Data.dll を選択します。