.net core 3.1連接 mysql失敗,提示 SSL身份驗證錯誤


配置文件中定義連接字符串:

"db": "server=10.0.0.0;database=Test;uid=sa;pwd=123456;Allow User Variables=true;default command timeout=120;Pooling=true;Max Pool Size=1000;"

建立數據庫連接:

public override IDbConnection GetConnection()
        {
            IDbConnection conn = new MySqlConnection(_config["db"]);
            if (conn.State != ConnectionState.Open)
                conn.Open();

            return conn;
        }

報錯:

Message: \"SSL Authentication Error\", InnerException: AuthenticationException { TargetSite: Void Throw(), StackTrace: \"   at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception

 

問題原因:如果MySQL.Data.dll是高版本(8.0.8或者以上),並且MySQL也是5.7.78或者以上的版本,MySQL.Data.dll數據庫驅動程序中新增了SSL安全模式,默認情況下是開啟的。所以,我們需要在.NET的數據庫連接字符串中顯式關閉SSL模式

解決方案:

"db": "server=10.0.0.0;database=Test;uid=sa;pwd=123456;Allow User Variables=true;default command timeout=120;Pooling=true;Max Pool Size=1000;SslMode=none;"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM