c# - 使用 raspbian 在 C# 应用程序中连接到 MariaDB
问题描述
我一直在尝试在我的 pi3 上运行一个使用 mysql (mariadb) 并像这样连接的服务器:
mySQLSettings.connection = new MySqlConnection("SERVER=localhost;DATABASE=servertest;UID=root;PASSWORD=;");
mySQLSettings.connection.Open();
当我使用 XAMPP 时,它在 Windows 上运行良好。但是,当我在我的 pi 上运行该应用程序时,它会抛出这个:
Could not connect to MySQL: MySql.Data.MySqlClient.MySqlException (0x80004005): Client does not support authentication protocol requested by server; consider upgrading MariaDB client
at MySql.Data.MySqlClient.MySqlStream.ReadPacket () [0x0006e] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.NativeDriver.AuthenticateNew (System.Boolean reset) [0x000ed] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.NativeDriver.Authenticate (System.Boolean reset) [0x00040] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.NativeDriver.Open () [0x00344] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.Driver.Open () [0x0000c] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00058] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection () [0x0001e] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection () [0x000b5] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver () [0x00051] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.MySqlPool.GetConnection () [0x00021] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at MySql.Data.MySqlClient.MySqlConnection.Open () [0x0013e] in <61bbf0b98df94765b3636dc3aa92c9d7>:0
at GameServer.MySQL.ConnectToMySQLServer () [0x00000] in <16fb46a8a2244c9e90373e583102cae7>:0
MariaDB 的版本是 10.3.22,我使用的是 MySql.Data-6.4 dll
我错过了一些简单的东西吗?
提前致谢!
解决方案
您使用的是相当旧的 MySql.Data.dll 版本,它可能不支持您的服务器正在使用的身份验证方案。
在这种情况下,我建议切换到MySqlConnector,它对 MariaDB 有更好的客户端支持,包括它的auth_gss_client
和auth_ed25519
身份验证方案(后者在单独的包中)。
推荐阅读
- xquery - Xquery 版本 0.9-ml 到 xquery 版本 1.0-ml 更新
- java - 将 xml 解析为 DOM 时保留换行符的十进制值
- sql - 从多个括号中获取文本
- bigbluebutton - 在 bigbluebutton 中会议结束前处理录制
- ios - AppStore:可选截图真的是可选的吗?[Xcode]
- python - 在 Windows PC 上安装 Stellargraph 时遇到错误
- regex - 如何用正则表达式消除字符?
- angularjs - AngularJS 模块 + Webpack + ES6 导入 - 依赖注入和连接顺序问题
- html - 在树莓派上的 lighttpd Web 服务器中通过 /var/www/cgi-bin 运行 .cgi 脚本
- c++ - 如何获得进程的整数PID?