MySqlConnector: High Performance .NET MySQL Driver
About
MySqlConnector is a C# ADO.NET driver for MySQL Server, MariaDB,
Amazon Aurora,
Azure Database for MySQL,
Google Cloud SQL for MySQL,
Percona Server and more. It provides implementations of
DbConnection
, DbCommand
, DbDataReader
, DbTransaction
— the classes
needed to query and update databases from C# code.
Getting Started
Install MySqlConnector from NuGet: dotnet add package MySqlConnector
Connecting to your database is simple. For example, in C#:
using var connection = new MySqlConnection("Server=myserver;User ID=mylogin;Password=mypass;Database=mydatabase");
connection.Open();
using var command = new MySqlCommand("SELECT field FROM table;", connection);
using var reader = command.ExecuteReader();
while (reader.Read())
Console.WriteLine(reader.GetString(0));
For more information, see how to install and a basic example of using the API. Many ORMs are supported.
Asynchronous I/O
MySqlConnector also fully supports asynchronous I/O. The C# example above can be rewritten as:
await using var connection = new MySqlConnection("Server=myserver;User ID=mylogin;Password=mypass;Database=mydatabase");
await connection.OpenAsync();
using var command = new MySqlCommand("SELECT field FROM table;", connection);
await using var reader = await command.ExecuteReaderAsync();
while (await reader.ReadAsync())
Console.WriteLine(reader.GetString(0));
Performance
MySqlConnector outperforms Connector/NET (MySql.Data) on benchmarks:
(Client: MySqlConnector 2.2.0, Ubuntu 20.04, .NET 7.0; Server: Azure Database for MySQL 8.0.28, TLS 1.2)
Why use MySqlConnector over Oracle’s MySQL Connector/NET?
MySqlConnector is a clean-room reimplementation of the MySQL Protocol and is not based on Oracle’s MySQL Connector/NET.
See MySqlConnector vs MySql.Data for reasons to switch to MySqlConnector and details on migrating.