Soluções para Erros do MySQL em Integrações com .NET e SqlSugar

Erro de Conjunto de Caracteres Não Suportado

O erro System.NotSupportedException: Character set 'utf8mb3' is not supported by .Net Framework pode ocorrer devido a versões desatualizadas das bibliotecas. Atualize o pacote MySql.Data para a versão mais recente através do NuGet, como a 8.0.31, em vez de baixar manualmente do site oficial.

// Exemplo de referência atualizada no arquivo .csproj ou via comando NuGet
Install-Package MySql.Data -Version 8.0.31

Incompatibilidade de Tipos entre C# e MySQL

Ao mapear um campo unsigned int no MySQL para uma propriedade uint em C#, assegure-se de que os tipos sejam compatíveis para evitar erros de conversão, como System.Int32 cannot be converted to System.UInt32.

// Definição correta no modelo C#
public uint IdentificadorCiclo { get; set; }

// Consulta SQL correspondente
// CREATE TABLE tabela (IdentificadorCiclo INT UNSIGNED NULL);

Erro de Chave Pública RSA em Conexões Inseguras

O erro Retrieval of the RSA public key is not enabled for insecure connections pode ser resolvido ajustando a string de conexão. Adicione o parâmetro AllowPublicKeyRetrieval=True ou utilize a autenticação mysql_native_password em vez de sha256_password.

// String de conexão modificada para permitir recuperação da chave pública
string conexao = "Server=localhost;Port=3306;Database=meuBanco;User=root;Senha=123456;Pooling=false;CharSet=utf8;SSL Mode=None;AllowPublicKeyRetrieval=true";

Erro de Inicialização do SqlSugarClient

O erro palavra-chave fornecida não está no dicionário ao instanciar o SqlSugarClient geralmente indica incompatibilidade de versões. Certifique-se de que as versões do MySql.Data e do SqlSugar sejam alinhadas, como a 8.0.31 para ambos.

// Configuração atualizada para o SqlSugarClient
var configuracao = new ConnectionConfig()
{
    ConnectionString = "Server=localhost;Port=3306;Database=sistemaDB;User=root;Senha=654321;Pooling=false;CharSet=utf8;SSL Mode=None;AllowPublicKeyRetrieval=true",
    IsAutoCloseConnection = true,
    DbType = DbType.MySql
};

using (var bancoDeDados = new SqlSugarClient(configuracao))
{
    bancoDeDados.DbMaintenance.CreateDatabase();
    bancoDeDados.CodeFirst.InitTables(typeof(Registro));
}

Prolbemas com o Serviço do MySQL

Se o serviço do MySQL estiver travado ao iniciar ou parar, encerre os processos via prompt de comando como administrador. Use comandos como tasklist|findstr "mysql" e taskkill /f /t /im mysqld.exe para forçar o encerramento.

REM Exemplo de comandos no Windows
tasklist|findstr "mysql"
taskkill /f /t /im mysqld.exe

Erros de Conexão e Timeout

Erros como timeout reading communication packets ou Unable to connect to any of the specified MySQL hosts podem indicar problemas de rede ou configuração. Verifique a string de conexão, o status do servidor e parâmetros como timeouts ou pooling.

Para erros fatais durante a execução de comandos, revise a lógica de consultas e assegure-se de que a comunicação com o banco de dados está estável.

Tags: MySQL .NET C# SqlSugar Character Set

Publicado em 6-17 23:05