J'essaie d'exécuter un serveur avec une base de données MySQL, mais je continue à recevoir cette énorme erreur et je ne sais pas pourquoi.
[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)```
Il existemises à jour/NET disponibles pour le connecteur MySQL.
Après la mise à jour vers la version 8.0.28 (package NuGet
MySql.Data
) tout est revenu à la normale.Dans mon cas, j'ai installé celui par défaut avec
utf8mb3
的10.6.4-MariaDB
.J'ai eu la même erreur en essayant de lire le tableau.
J'ai résolu le problème en modifiant tous les paramètres de jeu de caractères dans la configuration MariaDB en
utf8mb4
.Puis j'ai vidé ma base de données et je l'ai réimportée. Cette fois-ci précisez
utf8mb4
lors de la création de la base de données.Ainsi, les requêtes
SELECT
、UPDATE
normales fonctionnent correctement et plus aucune erreur ne se produit.Mais lorsque mon application appelle la procédure stockée, je continue de recevoir des erreurs.
Je pense que cela pourrait être dû au fait que la procédure stockée est enregistrée dans
information_schema
数据库中,它仍然是utf8mb3
并且我找不到将其更改为的方法>utf8mb4
.Après avoir passé beaucoup de temps à essayer de mettre en œuvre des solutions de contournement étranges, je suis tombé sur ce rapport de bug :
Impossible d'utiliser MariaDB 10.6 à partir de l'application client C# :
https://jira.mariadb.org/browse/MDEV-26105?attachmentViewMode=List
Un utilisateur a dit :
J'ai donc fini par ajouter ceci à mon projet VB avant d'exécuter la procédure stockée :
Cela a résolu l'erreur pour moi.
C'est aussi ce que j'ai modifié précédemment dans la configuration du serveur MariaDB :