Ich versuche, einen Server mit einer MySQL-Datenbank zu betreiben, aber ich erhalte ständig diesen großen Fehler und weiß nicht, warum.
[21:15:49,107] Server Properties Lookup: Error While Initialization DOL.Database.DatabaseException: Table DOL.Database.ServerProperty is not registered for Database Connection... at DOL.Database.ObjectDatabase.SelectAllObjects[TObject]() at DOL.GS.ServerProperties.Properties.get_AllDomainProperties() at DOL.GS.ServerProperties.Properties.InitProperties() at DOL.GS.GameServer.InitComponent(Action componentInitMethod, String text)``` also this error [21:15:35,991] ExecuteSelectImpl: UnHandled Exception for Select Query "DESCRIBE `Specialization`" System.NotSupportedException: Character set 'utf8mb3' is not supported by .Net Framework. at MySql.Data.MySqlClient.CharSetMap.GetCharacterSet(DBVersion version, String charSetName) at MySql.Data.MySqlClient.MySqlField.SetFieldEncoding() at MySql.Data.MySqlClient.NativeDriver.GetColumnData(MySqlField field) at MySql.Data.MySqlClient.NativeDriver.GetColumnsData(MySqlField[] columns) at MySql.Data.MySqlClient.Driver.GetColumns(Int32 count) at MySql.Data.MySqlClient.ResultSet.LoadColumns(Int32 numCols) at MySql.Data.MySqlClient.ResultSet..ctor(Driver d, Int32 statementId, Int32 numCols) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlDataReader.Close() at MySql.Data.MySqlClient.MySqlCommand.ResetReader() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader() at DOL.Database.SQLObjectDatabase.ExecuteSelectImpl(String SQLCommand, IEnumerable`1 parameters, Action`1 Reader)```
有可用于 MySQL 连接器的更新/NET。
更新到版本 8.0.28 后(NuGet 包
MySql.Data
)一切都恢复正常了。就我而言,我安装了默认带有
utf8mb3
的10.6.4-MariaDB
。我在尝试读取表格时遇到了同样的错误。
我通过将 MariaDB 配置中的所有字符集设置更改为
utf8mb4
修复了该问题。然后转储我的数据库并再次导入它。这次在创建数据库时指定
utf8mb4
。因此,正常的
SELECT
、UPDATE
查询工作正常,不再出现错误。但是当我的应用程序调用存储过程时,我不断收到错误。
我认为这可能是因为存储过程保存到
information_schema
数据库中,它仍然是utf8mb3
并且我找不到将其更改为的方法>utf8mb4
.在花费了大量时间尝试实现一些奇怪的解决方法之后,我遇到了这个错误报告:
无法从 C# 客户端应用程序使用 MariaDB 10.6:
https://jira.mariadb.org/browse/MDEV-26105?attachmentViewMode=列表
那里的一位用户说:
所以我最终在执行存储过程之前将其添加到我的 VB 项目中:
这为我解决了错误。
此外,这是我之前在 MariaDB 服务器配置中更改的内容: