我正在尝试从简单的.NET 4.0 C#控制台应用程序连接到MySql数据库:
using MySql.Data.MySqlClient;
namespace MySqlTest
{
class Program
{
static void Main(string[] args)
{
using (var connection = new MySqlConnection(
"Server=xxx.xxx.xxx.xxx;Database=my_database;Uid=my_login;Pwd=my_password;" +
"CertificateFile=C:\\Users\\myuser\\Documents\\Visual Studio 2013\\Projects\\Sandbox\\MySqlTest\\certificate.pfx;" +
"CertificatePassword=certificate_password;SSL Mode=Required;"))
{
connection.Open();
}
}
}
}
当我运行应用程序时,我收到一个System.IO.IOException:“由于意外的数据包格式,握手失败”。
我已经从其他3个文件中创建了我的.pfx文件,首先运行此命令:
.\openssl.exe pkcs12 -export -out certificate.pfx -inkey user.key -in user.crt -certfile ca.crt
第二次尝试时,我将所有三个文件转换为.pem,然后运行相同的命令(http://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html - 请参阅“创建用于.NET客户端的证书文件”部分):
.\openssl.exe pkcs12 -export -out certificate.pfx -inkey user.pem -in user.pem -certfile ca.pem
我使用相同的三个文件从MySql Workbench连接到数据库并且它工作正常。我不知道为什么我的应用程序会出现此异常。 有没有人有任何想法?
我正在使用从NuGet下载的MySql.Data 6.9.6驱动程序。
谢谢!