Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

3.6K
Visualizações
System.NotSupportedException: el conjunto de caracteres 'utf8mb3' no es compatible con .Net Framework

Estoy tratando de ejecutar un servidor con una base de datos MySQL, sin embargo, sigo recibiendo este gran error y no estoy seguro de por qué.

 [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)```
over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

Tal vez una solución. Fuente: https://dba.stackexchange.com/questions/8239/how-to-easily-convert-utf8-tables-to-utf8mb4-in-mysql-5-5

Cambie su CONJUNTO DE CARACTERES Y COLLATE a utf8mb4.

Para cada base de datos:

 ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

Para cada mesa:

 ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Para cada columna:

 ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Trabajó para mí con Powershell y MariaDB 10.6. Espero que esto ayude ;)

over 4 years ago · Santiago Trujillo Relatório

0

En mi caso tenía instalado 10.6.4-MariaDB que venía por defecto con utf8mb3 .

Recibí el mismo error al intentar leer tablas.

Lo arreglé cambiando todas las configuraciones del juego de caracteres en la configuración de MariaDB a utf8mb4 .

Luego volcar mi base de datos e importarla nuevamente. Esta vez especificando utf8mb4 al crear la base de datos.

Entonces, las consultas normales SELECT , UPDATE funcionaban bien, no más errores.

Pero seguí recibiendo un error cuando mi aplicación estaba llamando a procedimientos almacenados.

Creo que tal vez eso se debió a que los procedimientos almacenados se guardan en la base de datos information_schema , que todavía era utf8mb3 y no pude encontrar una manera de cambiarlo a utf8mb4 .

Después de perder mucho tiempo tratando de implementar algunas soluciones extrañas, me encontré con este informe de error:

MariaDB 10.6 no se puede usar desde aplicaciones cliente C# :
https://jira.mariadb.org/browse/MDEV-26105?attachmentViewMode=list

Uno de los usuarios allí dice:

MariaDB utiliza el juego de caracteres del sistema solo internamente y no es necesario cambiarlo. En mi programa cliente escrito en C#, esto es lo que hice después de conectarme para que funcione con MariaDB 10.6:

 MySqlCommand setcmd = new MySqlCommand("SET character_set_results=utf8", conn); int n = setcmd.ExecuteNonQuery(); setcmd.Dispose();

en este comando, utf8 fue predeterminado a utf8mb4 por MariaDB debido a la configuración de old_mode. Ese es el conjunto de caracteres de resultados que estaba causando problemas con mi programa.

Así que terminé agregando esto en mi proyecto de VB justo antes de ejecutar mis procedimientos almacenados:

 Dim sqlCommand As New MySqlCommand sqlCommand.Connection = _MySqlCn sqlCommand.CommandText = "SET character_set_results=utf8" sqlCommand.ExecuteNonQuery()

Esto solucionó el error para mí.

Además, esto es lo que había cambiado previamente en la configuración del servidor MariaDB:

 [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 # this is read by the standalone daemon and embedded servers [server] # this is only for the mysqld standalone daemon [mysqld] old_mode= character-set-server = utf8mb4 character-set-client=utf8mb4 collation-server = utf8mb4_unicode_520_ci init-connect='SET NAMES utf8mb4'
over 4 years ago · Santiago Trujillo Relatório

0

En mi caso (MariaDB 10.6) ayudó a cambiar character-set-server en ...\MariaDB 10.6\data\my.ini de utf8 a utf8mb4 . Ahora todo funciona bien.

over 4 years ago · Santiago Trujillo Relatório

0

Hay una actualización disponible para MySQL Connector/NET .

Después de actualizar a la versión 8.0.28 (paquete MySql.Data ), todo vuelve a funcionar.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda