Whenever you need to test your ASP.NET connection to your MySQL database, using ODBC, you can use the following C# test script. Currently it uses MySQL ODBC 8.0 Unicode Driver, but you can easily change the version used. As a bonus it prints some connection information and it requires an SSL connection to your MySQL database (SslMode=REQUIRED).


<%@ Page Language="C#" Trace="False" Debug="False" EnableViewState="False" %>
<%@ import Namespace="System.Data.Odbc" %>

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
	try {
		//Connection string for MyODBC 8.0, pooling=true not added
		string MyConString = "DRIVER={MySQL ODBC 8.0 Unicode Driver};" +
		"Provider=MSDASQL;" +
		"SERVER=HOSTNAME;" +
		"DATABASE=DATABASENAME;" +
		"UID=USERNAME;" +
		"PASSWORD=PASSWORD;" +
		"SslMode=REQUIRED;";

		//Connect to MySQL using MyODBC
		OdbcConnection MyConnection = new OdbcConnection(MyConString);
		MyConnection.Open();

		Response.Write("<br /> !!! success, connected successfully !!!<br />");

		//Display connection information
		Response.Write("Connection Information:<br />");
		Response.Write("Connection String:" + MyConnection.ConnectionString + "<br />");
		Response.Write("Connection Timeout:" + MyConnection.ConnectionTimeout + "<br />");
		Response.Write("Database:" + MyConnection.Database + "<br />");
		Response.Write("DataSource:" + MyConnection.DataSource + "<br />");
		Response.Write("Driver:" + MyConnection.Driver + "<br />");
		Response.Write("ServerVersion:" + MyConnection.ServerVersion + "<br />");

		//Close all resources
		MyConnection.Close();
	}
	catch (OdbcException MyOdbcException)//Catch any ODBC exception ..
	{
		for (int i=0; i < MyOdbcException.Errors.Count; i++)
		{
			Response.Write("ERROR #" + i + "<br />" +
			"Message: " + MyOdbcException.Errors[i].Message + "<br />" +
			"Native: " + MyOdbcException.Errors[i].NativeError.ToString() + "<br />" +
			"Source: " + MyOdbcException.Errors[i].Source + "<br />" +
			"SQL: " + MyOdbcException.Errors[i].SQLState + "<br />");
		}
	}
}

</script>

Set SslMode to PREFERRED or DISABLED if SSL is not available on your MySQL database server.

Protip

Use NO_SSPS=1 as a connection option when server-side prepared statements are not returning any results – for example with VARCHAR() columns larger than 1024 bytes.

If you have installed Connector/ODBC side-by-side with Connector/NET, you can use this MySQL ODBC test script next to my MySql.Data.MySqlClient test script. Neat, right? :)