LinkMenuExpand(external link)DocumentSearchCopyCopied

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:

Benchmark

(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.

MySqlConnectorOracle’s Connector/NETMySqlConnector Advantage
AsyncFully asynchronous I/OAsync calls map to synchronous I/OUses fewer thread pool threads; higher throughput
DevelopmentOpen and Collaborative Development on GitHubClosed Development Roadmap. Code is viewable on GitHub, some issues addressed in forumsGet involved! View our roadmap, discuss issues, contribute pull requests
LicenseThe MIT LicenseGPLv2 with FOSS Exception; or commercial licenseMore Permissive