Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 13228|Resposta: 3

[Fonte] RewriteBatchedStatements do Java JDBC, allowPublicKeyRetrieval...

[Copiar link]
Postado em 2022-2-11 13:59:18 | | |
Otimizou o desempenho das configurações rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries e sslMode do Java JDBC.

Documentação de Todas as Propriedades de Configuração do JDBC:O login do hiperlink está visível.

Revisar:

.NET/C# Otimizou o desempenho do SslMode para bancos de dados MySQL
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

Ao usar o MySQL 8.0, após reiniciar o app, você é solicitado com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: A recuperação de chave pública não é permitida

A solução mais fácil é adicioná-lo após a conexãoallowPublicKeyRetrieval=true

Se o usuário usar autenticação sha256_password, a senha deve ser protegida durante o trânsito usando o protocolo TLS, mas se a chave pública RSA não estiver disponível, a chave pública fornecida pelo servidor pode ser usada; A chave pública RSA do servidor pode ser especificada na conexão via ServerRSAPublicKeyFile, ou o parâmetro AllowPublicKeyRetrieval=True para permitir que o cliente obtenha a chave pública do servidor; No entanto, deve-se notar que AllowPublicKeyRetrieval=True pode fazer com que agentes maliciosos obtenham senhas em texto simples por meio de ataques man-in-the-middle (MITM), portanto ela é desativada por padrão e deve ser explicitamente habilitada.



rewriteBatchedStatements

Para alcançar inserção em lote de alto desempenho, adicionando o parâmetro rewriteBatchedStatements à URL da conexão JDBC no MySQL e garantindo que a versão 5.1.13 ou posterior do driver seja garantida. Por padrão, o driver JDBC do MySQL ignora a instrução executeBatch(), divide um conjunto de instruções SQL que esperamos executar em lotes e as envia para o banco de dados MySQL uma a uma.
Somente definindo o parâmetro rewriteBatchedStatements como true o driver executa o SQL em lotes
Essa opção também é válida para INSERIR/ATUALIZAR/EXCLUIR

Por padrão, o driver MySQL Jdbc ignora a instrução executeBatch(), separa um conjunto de instruções SQL que esperamos executar em lotes e as envia para o banco de dados MySQL uma a uma, o que causa baixo desempenho diretamente.

Somente configurando o parâmetro rewriteBatchedStatements para true, o driver ajudará você a executar SQL em massa (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


allowMultiQueries

Permissão para usar'; 'Separa múltiplas consultas (verdadeiro/falso) em uma única instrução. O valor padrão é "false", o que não afeta os métodos addBatch() e executeBatch(), que dependem do rewriteBatchStatements.

Quando o MySQL se conectar a um banco de dados, adicione a instrução:allowMultiQueries=trueO papel de ":

1. Você pode carregar um ponto e vírgula após a instrução SQL para realizar a execução em múltiplas sentenças.
2. O processamento em lote pode ser realizado e múltiplas instruções SQL podem ser emitidas ao mesmo tempo.


sslMode

Por padrão, as conexões de rede são criptografadas por SSL; Essa propriedade permite desligar a conexão segura ou selecionar um nível diferente de segurança. Os seguintes valores são permitidos: "DESABILITADO" - uma conexão não criptografada é estabelecida; "PREFERIDO" - (padrão) Se o servidor habilitar conexões criptografadas, uma conexão criptografada é estabelecida, caso contrário, ela volta a ser uma conexão não criptografada; "OBRIGATÓRIO" - Estabelecer uma conexão segura se o servidor a tiver habilitado, caso contrário falha; "VERIFY_CA" - Semelhante a "OBRIGATÓRIO", mas adicionalmente valida o certificado TLS do servidor contra o certificado da autoridade certificadora (CA) configurada; "VERIFY_IDENTITY" - como "VERIFY_CA",

Esse atributo substitui os antigos atributos obsoletos "useSSL", "requireSSL" e "verifyServerCertificate", que ainda são aceitos, mas convertidos para o valor de "sslMode" se "sslMode" não estiver explicitamente definido: "useSSL=false" é convertido em "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} é traduzido como "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} é traduzido como "sslMode=REQUIRED"; {"useSSL=true" E "verifyServerCertificate=true"} é traduzido como "A configuração padrão para "sslMode" é "PREFERRED", que é equivalente às configurações tradicionais "useSSL=true", "requireSSL=false" e "verifyServerCertificate=false", que é a mesma do Connector/ As configurações padrão para J 8.0.12 e versões anteriores são diferentes em alguns casos. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas. A configuração padrão para "sslMode" é "PREFERRED", que é equivalente às configurações tradicionais de "useSSL=true", "requireSSL=false" e "verifyServerCertificate=false", que é diferente da configuração padrão para Connector/ J 8.0.12 e anteriores em alguns casos. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas. Em alguns casos, é 12 ou antes. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas. Em alguns casos, é 12 ou antes. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas.

Se "sslMode" estiver explicitamente definido, a propriedade antiga é ignorada. Se "sslMode" ou "useSSL" não estiverem explicitamente definidos, a configuração padrão "sslMode=PREFERRED" é aplicada.

Configurações do JDBC para desligar conexões seguras:sslmode=desativado




Anterior:Como renomear arquivos em lotes no Linux
Próximo:Como restringir usuários taiwaneses de se registrarem, postar informações à vontade e pedir conselhos sobre como escrever.
 Senhorio| Postado em 11-02-2022 14:04:39 |
String de conexão de banco de dados mola

Postado em 13-02-2022 16:31:57 |
Aprenda a aprender.
 Senhorio| Postado em 25-04-2024 08:38:32 |
Exceção C#
System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseMySql' call.
---> MySqlConnector.MySqlException (0x80004005): Método de autenticação 'caching_sha2_password' falhou. Ou use uma conexão segura, especifique a chave pública RSA do servidor com ServerRSAPublicKeyFile, ou defina AllowPublicKeyRetrieval=True.


solução

Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com