2017-10-03 12 views
0

私が使用して、SSLを必要とするMySQLサーバへの接続てるMySqlConnection接続MySQLはC#でSSLを使用する

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

サーバーがSSLを必要としない場合、これは成功しますが、上のGRANT USAGE ON *.* TO 'root'@'localhost' REQUIRE SSL;を実行した後サーバーでは、次のように失敗し始めます。

ProviderIncompatibleException:プロバイダがProviderManifestToken文字列を返しませんでした。 ---> MySql.Data.MySqlClient.MySqlException:メソッド 'mysql_native_password'を使用してユーザー 'root'のホスト '127.0.0.1'への認証が失敗しました:ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワード:はい)---> MySql.Data.MySqlClient.MySqlException:YES)

方法は、SSLが有効になっている:アクセスが(パスワードを使用して、ユーザーのルート '@ 'localhost' のために拒否されましたか?何かが接続文字列に追加されるべきか、それともプログラム的に行われるべきですか?

答えて

0

もう一度検索したところ、回答はHow determine if using SSL in a MySql Connection?にありました。

私は、接続文字列にSSL Mode=Required代わりのencrypt=trueを追加する必要がありました:

var connection = new MySqlConnection("Data Source=127.0.0.1;Database=MyDb1;User Id=root;Password=blabla;SSL Mode=Required"); 

は今、私は新しいエラー取得しています - MySql.Data.MySqlClient.MySqlException: “The host localhost does not support SSL connections.”を、私は、私はそれを理解すると思います。

関連する問題