如何在没有SSL的情况下连接到MySQL数据库。

13

我正在尝试连接到本地 MySQL 数据库。

我有这个连接器:

using(MySqlConnection conn = new MySqlConnection("Database=Studentenverwaltung;Port=3306;Data Source=127.0.0.1;User Id=root;Password=abc123")) 
{
    try 
    {
        conn.Open();
        Console.WriteLine("Opened!");
        conn.Close();
    }
    catch(Exception e) 
    {
        Console.WriteLine("Cannot open Connection");
        Console.WriteLine(e.ToString());
    }
}

但我得到了这个异常:

MySql.Data.MySqlClient.MySqlException (0x80004005):主机127.0.0.1不支持SSL连接。

似乎它无法连接到数据库,因为数据库不支持SSL。那么有没有一种方法可以在没有SSL的情况下连接到数据库呢?

2个回答

29

您是否尝试在连接字符串中将 SslMode 属性设置为 'none'?

这样应该可以解决问题:

new MySqlConnection("Database=Studentenverwaltung;Port=3306;Data Source=127.0.0.1;User Id=root;Password=abc123;SslMode=none;")

这个设置会不会存在任何安全问题? - Himalaya Garg
1
如果您有任何安全顾虑,请永远不要这样做。无论出于任何原因,都不要这样做... 永远不要。 - Camway

2
using MySql.Data.MySqlClient;

private const String SERVER = "1.1.1.1";         // Server IP
private const String DATABASE = "abc";           // Date base name
private const String TABLE = "test";             // Table name
private const String UID = "user";               // Date base username
private const String PASSWORD = "pass";          // Date base password

public static void InitializeDataBase()
{                
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();

builder.Server = SERVER;
builder.UserID = UID;
builder.Password = PASSWORD;
builder.Database = DATABASE;
builder.SslMode = MySqlSslMode.None;
//builder.CertificateFile = @"<Path_To_The_File>\client.pfx";
//builder.CertificatePassword = "<Password_For_The_Cert>";

String connString = builder.ToString();
builder = null;

dbConn = new MySqlConnection(connString);         
}    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接