TrinityCore/WowPacketParser

Character set 'utf8mb3' is not supported by .Net Framework - MySQL 8.0.29.0

Closed this issue · 10 comments

TrinityCore - WowPacketParser
Detected build: V9_2_0_43345
Detected locale: enUS
Targeted database: Shadowlands
Parsing date: 05/26/2022 13:35:21

Using SSL version: OpenSSL 1.1.1o 3 May 2022 (library: OpenSSL 1.1.1o 3 May 2022)
Using Boost version: 1.79.0
Using Windows 11 Pro 21H2
Using MySQL 8.0.29.0

WowPacketParser.dll.config.txt

The given key '0' was not present in the dictionary.
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.MySqlField.set_CharacterSetIndex(Int32 value)
   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 WowPacketParser.SQL.SQLDatabase.LoadBroadcastText() in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\SQLDatabase.cs:line 132
   at WowPacketParser.SQL.SQLDatabase.LoadSQL() in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\SQLDatabase.cs:line 106
   at WowPacketParser.SQL.SQLConnector.ReadDB() in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\SQLConnector.cs:line 111
Finished loading DB in 00:00:00.662.

40/78 - Error: Failed writing Creature
WowPacketParser Error: 0 : MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered attempting to read the resultset.
 ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered attempting to read the resultset.
 ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Expected end of data packet
   at MySql.Data.MySqlClient.NativeDriver.CheckEOF()
   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.NextResult()
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   at WowPacketParser.SQL.SQLUtil.GetDefaultObject[T]() in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\SQLUtil.cs:line 771
   at WowPacketParser.SQL.Builders.Spawns.Creature(Dictionary`2 units) in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\Builders\Spawns.cs:line 54

43/78 - Write CreatureTemplateAddon
43/78 - Error: Failed writing CreatureTemplateAddon
WowPacketParser Error: 0 : System.InvalidOperationException: Connection must be valid and open.
   at MySql.Data.MySqlClient.Interceptors.ExceptionInterceptor.Throw(Exception exception)
   at MySql.Data.MySqlClient.MySqlConnection.Throw(Exception ex)
   at MySql.Data.MySqlClient.MySqlCommand.Throw(Exception ex)
   at MySql.Data.MySqlClient.MySqlCommand.CheckState()
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   at WowPacketParser.SQL.SQLUtil.GetDefaultObject[T]() in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\SQLUtil.cs:line 771
   at WowPacketParser.SQL.Builders.UnitMisc.CreatureTemplateAddon(Dictionary`2 units) in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\Builders\UnitMisc.cs:line 29

54/78 - Write CreatureTemplateNonWDB
54/78 - Error: Failed writing CreatureTemplateNonWDB
WowPacketParser Error: 0 : System.InvalidOperationException: Connection must be valid and open.
   at MySql.Data.MySqlClient.Interceptors.ExceptionInterceptor.Throw(Exception exception)
   at MySql.Data.MySqlClient.MySqlConnection.Throw(Exception ex)
   at MySql.Data.MySqlClient.MySqlCommand.Throw(Exception ex)
   at MySql.Data.MySqlClient.MySqlCommand.CheckState()
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   at WowPacketParser.SQL.SQLDatabase.GetDict[T,TK](String query) in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\SQLDatabase.cs:line 310
   at WowPacketParser.SQL.Builders.UnitMisc.CreatureTemplateNonWDB(Dictionary`2 units) in I:\WoW Tools\WowPacketParser\WowPacketParser\SQL\Builders\UnitMisc.cs:line 538

Cant reproduce works perfect for me is ure db issue look Character set 'utf8mb3' is not supported

Cant reproduce works perfect for me is ure db issue look Character set 'utf8mb3' is not supported

Where do I change that configuration in MySQL?
Which one does it support?

right click on db , edit , change collation i use utf8 bin

or u can send me dm in discord nad i show how to do step by step

right click on db , edit , change collation i use utf8 bin

There is no utf8 bin option in MySQL 8.0.29.0.

iirc utf8 (aka utf8mb3) is deprecated in some MySQL version of 8.0->
Test to change the collatiom to utf8mb4 and see if that fixes your issue

Master runs in utf8mb4 on default.

Master runs in utf8mb4 on default.

On new installations it does but I might have forgotten to include conversion on database level, only did each table)

Fabi commented

Try updating the mysql.data connector nuget package to the latest version. Support for that charset was added in the 8.0.29 connector.

Closed in d712f81