如何使用 C# 连接 Google Cloud SQL

1 c# mysql database google-cloud-sql

我只想使用 C# 在 Google Cloud 上管理我的数据库。我刚开始学习数据库。PS我英语不好。我希望你能理解我。

Bra*_*ger 6

我假设您已经创建了 Google Cloud SQL MySQL 实例。

按照使用 SSL 连接到 Cloud SQL 实例中的说明,您需要启用外部 SSL 访问并创建客户端证书。

您将下载三个文件:server-ca.pem、client-cert.pem、client-key.pem。

MySqlConnector NuGet 包安装到 C# 应用程序中。

创建您的连接字符串,如下所示:

var csb = new MySqlConnectionStringBuilder
{
    Server = "Google Cloud SQL IP address",
    UserID = "Your UserName",
    Password = "Your Password",
    Database = "Your Database/Schema Name",
    SslCert = @"C:\Path\To\client-cert.pem",
    SslKey = @"C:\Path\To\client-key.pem",
    SslCa = @"C:\Path\To\server-ca.pem",
    SslMode = MySqlSslMode.VerifyCA,
};

using var connection = new MySqlConnection(csb.ConnectionString);
connection.Open();
Run Code Online (Sandbox Code Playgroud)

请注意,对于旧版本的 MySqlConnector 库,您需要将 SSL 证书和密钥合并到一个 PFX 文件中。按照这些说明,将 client-cert.pem 和 client-key.pem 转换为 pfx 文件:

openssl pkcs12 -inkey client-key.pem -in client-cert.pem -export -out client.pfx
Run Code Online (Sandbox Code Playgroud)

然后删除Ssl*连接字符串选项并添加以下内容:

var csb = new MySqlConnectionStringBuilder
{
    Server = "Google Cloud SQL IP address",
    UserID = "Your UserName",
    Password = "Your Password",
    Database = "Your Database/Schema Name",
    SslCert = @"C:\Path\To\client-cert.pem",
    SslKey = @"C:\Path\To\client-key.pem",
    SslCa = @"C:\Path\To\server-ca.pem",
    SslMode = MySqlSslMode.VerifyCA,
};

using var connection = new MySqlConnection(csb.ConnectionString);
connection.Open();
Run Code Online (Sandbox Code Playgroud)