TrinityCore / WowPacketParser

World of Warcraft Packet Parser
GNU General Public License v3.0
419 stars 354 forks source link

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

Closed osleyder85 closed 2 years ago

osleyder85 commented 2 years ago

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
Thordekk commented 2 years ago

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

osleyder85 commented 2 years ago

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?

Thordekk commented 2 years ago

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

Thordekk commented 2 years ago

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

osleyder85 commented 2 years ago

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

There is no utf8 bin option in MySQL 8.0.29.0.

Kitzunu commented 2 years ago

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

funjoker commented 2 years ago

Master runs in utf8mb4 on default.

Shauren commented 2 years ago

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 2 years ago

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

funjoker commented 2 years ago

Closed in d712f81c7e21ba9b0f362f7d23d1462c8b5b3c33