2017-07-16 123 views
0

我正在构建需要连接到AWS RDS MySQL数据库的Xamarin.Mac应用程序(C#)。如何使用证书颁发机构从C#连接到RDS MySQL数据库?

我的代码:

using (SqlConnection connection = new SqlConnection(ConnectionString)) 
      { 
       connection.Open(); 
       using (SqlCommand command = new SqlCommand("SELECT * FROM store", connection)) 
       using (SqlDataReader reader = command.ExecuteReader()) 
       { 
        while (reader.Read()) 
        { 
         Console.WriteLine("{0} {1} {2}", 
          reader.GetInt32(0), reader.GetString(1), reader.GetString(2)); 
        } 
       } 
      } 

哪里我的连接字符串的格式为:

ConnectionString = "Server={0};Database={1}Uid={2};Pwd={3}"; 

不过,我似乎无法连接。然而,通过MySqlWorkbench使用相同的主机和凭据,我可以很好地连接。我看到我的RDS实例的版本设置为证书颁发机构设置为rds-ca-2015(没有选项而不是将其设置为此)。

如何使用上面的C#代码连接到此RDS数据库?

回答

0

原来这是不是与我最初认为的证书颁发机构有关。

但是,我想我会发布一个答案,因为我花了很长时间才找到解决方案,其他开发人员希望能找到它的用处。

所以对于其他开发商谁正在使用Xamarin.Mac构建一个OSX的应用程序,你需要设置项目中使用Xamarin.Mac .NET 4.5 Framework。这是而不是当启动一个新的OSX项目时的默认值,所以你必须改变它并重新定位你的包。然后,只需添加NuGet包MySql.Data和更新您的连接代码:

using (MySqlConnection connection = new MySqlConnection(ConnectionString)) 
     { 
      connection.Open(); 
      using (MySqlCommand command = new MySqlCommand("SELECT * FROM store", connection)) 
      using (MySqlDataReader reader = command.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        Console.WriteLine("{0} {1} {2}", 
         reader.GetInt32(0), reader.GetString(1), reader.GetString(2)); 
       } 
      } 
     } 

工程等之后,一个魅力。

相关问题