MySqlConnectionStringBuilder - 使用证书连接

dkn*_*ack 0 c# mysql google-app-engine google-cloud-sql

我正在尝试连接到 Google Cloud Sql,这是一个 MySql 解决方案。我能够使用 MySql Workbench 进行连接。

我如何使用 C# 进行连接MySqlConnectionStringBuilder

我找不到提供这三个证书的方法。

dkn*_*ack 5

我找到了解决方案。

  1. 确保您可以使用谷歌云控制台访问外部连接+您必须设置密码。
  2. 导出3个证书文件
  3. 使用创建新证书

    openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem 
                   -certfile server-ca.pem -out client.pfx
    
    Run Code Online (Sandbox Code Playgroud)
  4. 源代码

        var connectionStringBuilder = new MySqlConnectionStringBuilder
        {
            Server = "<Instance_Ip>",
            UserID = "root",
            Password = "<Password>",
            Database = "<Database_Name>",
            CertificateFile = @"<Path_To_The_File>\client.pfx",
            CertificatePassword = "<Password_For_The_Cert>"
        };
    
        using (var conn = new MySqlConnection(connectionStringBuilder.ToString()))
        using (var cmd = conn.CreateCommand())
        {    
            cmd.CommandText = string.Format("SELECT * FROM test");
            conn.Open();
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                var data = reader.GetString(0);
                Console.WriteLine(data);
            }
        }
    
    Run Code Online (Sandbox Code Playgroud)