在 C# 中使用 SSL 连接到 MySQL

sas*_*alm 4 c# mysql ssl

我正在连接到需要 SSL 的 MySQL 服务器,使用MySqlConnection

var connection = new MySqlConnection("Data Source=127.0.0.1;Database=MyDb1;User Id=root;Password=blabla;encrypt=true");
Run Code Online (Sandbox Code Playgroud)

如果服务器不需要 SSL,则此操作会成功,但GRANT USAGE ON *.* TO 'root'@'localhost' REQUIRE SSL;在服务器上执行后,它开始失败并显示:

ProviderInknownException:提供程序未返回 ProviderManifestToken 字符串。---> MySql.Data.MySqlClient.MySqlException:使用方法“mysql_native_password”对用户“root”的主机“127.0.0.1”进行身份验证失败,并显示消息:用户“root”@“localhost”的访问被拒绝(使用密码:YES ) ---> MySql.Data.MySqlClient.MySqlException: 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)

SSL 如何启用?应该在连接字符串中添加一些内容还是以编程方式完成?

sas*_*alm 5

好的,经过更多搜索后,我在如何确定是否在 MySql 连接中使用 SSL?

\n

我必须添加SSL Mode=Required而不是添加encrypt=true到连接字符串:

\n
var connection = new MySqlConnection("SSL Mode=Required;Data Source=127.0.0.1;Database=MyDb1;User Id=root;Password=blabla");\n
Run Code Online (Sandbox Code Playgroud)\n

现在我收到一个新错误 - MySql.Data.MySqlClient.MySqlException: \xe2\x80\x9cThe host localhost does not support SSL links.\xe2\x80\x9d,但我想我会弄清楚的。

\n