无法在另一台服务器上连接Mysql

时间:2018-05-13 13:52:19

标签: c# mysql linux .net-core

我创建了一个DotNet应用程序,在数据库中插入一些数据,为了管理这种情况并处理不同的数据库配置,我创建了一个名为cred.json的json,其中包含有关的所有信息。服务器连接。结构如下:

{
  "Server":"localhost",
  "Database":"mydb",
  "User":"root",
  "Password":"root",
  "SslMode":false,
  "CharacterSet":"utf8",
  "Port":"3307"
}

连接类包含一个名为Connect的方法,该方法读取cred.json中可用的配置:

var json = JsonConvert.DeserializeObject<Cred>(File.ReadAllText("cred.json"));

MySqlConnectionStringBuilder conn = new MySqlConnectionStringBuilder();
 conn.Server = json.Server;
 conn.Database = json.Database;
 conn.UserID = json.User;
 conn.Password = json.Password;
 conn.SslMode = GetSslMode(json.SslMode);
 conn.CharacterSet = json.CharacterSet;
 conn.Port = json.Port;

MySqlConnection = new MySqlConnection(conn.ToString());
MySqlConnection.Open();

我还有一个名为GetSslMode的方法,它返回特定的SslMode

private MySqlSslMode GetSslMode(string sslMode)
{
    switch (sslMode)
    {
        case "Required":
            return MySqlSslMode.Required;
        case "VerifyCA":
            return MySqlSslMode.VerifyCA;
        case "VerifyFull":
            return MySqlSslMode.VerifyFull;
        default:
            return MySqlSslMode.None;
    }
}

模型Cred是一个简单的类,它包含json的结构:

class Cred
{
    public string Server { get; set; }
    public string Database { get; set; }
    public string User { get; set; }
    public string Password { get; set; }
    public string SslMode { get; set; }
    public string CharacterSet { get; set; }
    public uint Port { get; set; }
}

当代码在Windows上达到MySqlConnection.Open();时,它可以工作,但是当我在Linux上尝试使用该应用程序将端口更改为80时,我得到:

  

连接必须有效并且打开

但凭据是正确的,我该如何诊断问题?

0 个答案:

没有答案