Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 13228|Respuesta: 3

[Fuente] RewriteBatchedStatements de Java JDBC, allowPublicKeyRetrieval...

[Copiar enlace]
Publicado el 11-2-2022 13:59:18 | | |
Optimizó el rendimiento de las configuraciones rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries y sslMode de Java JDBC.

Documentación de todas las propiedades de configuración de jdbc:El inicio de sesión del hipervínculo es visible.

Revisión:

.NET/C# Optimizó el rendimiento de SslMode para bases de datos MySQL
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

Al usar MySQL 8.0, tras reiniciar la aplicación, se te indica com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No se permite la recuperación de clave pública

La solución más sencilla es añadirlo después de la conexiónallowPublicKeyRetrieval=true

Si el usuario utiliza autenticación sha256_password, la contraseña debe protegerse durante el tránsito mediante el protocolo TLS, pero si la clave pública RSA no está disponible, se puede usar la clave pública proporcionada por el servidor; La clave pública RSA del servidor puede especificarse en la conexión mediante ServerRSAPublicKeyFile, o el parámetro AllowPublicKeyRetrieval=True para permitir que el cliente obtenga la clave pública del servidor; Sin embargo, debe señalarse que AllowPublicKeyRetrieval=True puede hacer que agentes maliciosos obtengan contraseñas en texto plano mediante ataques man-in-the-middle (MITM), por lo que está desactivada por defecto y debe estar habilitada explícitamente.



rewriteBatchedStatements

Para lograr inserción por lotes de alto rendimiento añadiendo el parámetro rewriteBatchedStatements a la URL de la conexión JDBC en MySQL y asegurando que la versión 5.1.13 o posterior del controlador esté garantizada. Por defecto, el controlador JDBC de MySQL ignora la sentencia executeBatch(), divide un conjunto de sentencias SQL que esperamos ejecutar en lotes y las envía a la base de datos MySQL una por una.
Solo estableciendo el parámetro rewriteBatchedStatements en true el controlador ejecutará el SQL en lotes
Esta opción también es válida para INSERTAR/ACTUALIZAR/ELIMINAR

Por defecto, el controlador MySQL Jdbc ignora la sentencia executeBatch(), descompone un conjunto de sentencias SQL que esperamos ejecutar en lotes y las envía a la base de datos MySQL una por una, lo que provoca directamente bajo rendimiento.

Solo configurando el parámetro rewriteBatchedStatements en true, el controlador te ayudará a ejecutar SQL en masa (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


allowMultiQueries

Permiso para usar'; 'Separa múltiples consultas (verdadero/falso) en una sola sentencia. El valor por defecto es "false", lo que no afecta a los métodos addBatch() y executeBatch(), que dependen de rewriteBatchStatements.

Cuando MySQL se conecte a una base de datos, añade la sentencia:allowMultiQueries=trueEl papel de ":

1. Puedes llevar un punto y coma después de la sentencia SQL para lograr la ejecución de varias sentencias.
2. El procesamiento por lotes puede realizarse y se pueden emitir múltiples sentencias SQL al mismo tiempo.


sslMode

Por defecto, las conexiones de red están cifradas por SSL; Esta función te permite desactivar la conexión segura o seleccionar un nivel de seguridad diferente. Se permiten los siguientes valores: "DESHABILITADO" - se establece una conexión sin cifrar; "PREFERIDOS" - (por defecto) Si el servidor habilita conexiones cifradas, se establece una conexión cifrada; de lo contrario, vuelve a una conexión no cifrada; "OBLIGATORIO" - Establecer una conexión segura si el servidor la ha habilitado, de lo contrario falla; "VERIFY_CA" - Similar a "REQUIRED", pero además valida el certificado TLS del servidor frente al certificado de autoridad certificadora (CA) configurada; "VERIFY_IDENTITY" - como "VERIFY_CA",

Este atributo reemplaza los antiguos atributos obsoletos "useSSL", "requireSSL" y "verifyServerCertificate", que aún se aceptan pero se convierten en el valor de "sslMode" si "sslMode" no está explícitamente establecido: "useSSL=false" se convierte en "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} se traduce como "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} se traduce como "sslMode=REQUIRED"; {"useSSL=true" Y "verifyServerCertificate=true"} se traduce como "La configuración predeterminada para "sslMode" es "PREFERRED", que es equivalente a las configuraciones tradicionales "useSSL=true", "requireSSL=false" y "verifyServerCertificate=false", que es la misma que el Connector/ La configuración predeterminada para J 8.0.12 y versiones anteriores es diferente en algunos casos. Las aplicaciones que sigan usando los antiguos atributos y dependan de sus antiguos valores predeterminados deberían ser revisadas. La configuración predeterminada para "sslMode" es "PREFERRED", que equivale a la configuración tradicional de "useSSL=true", "requireSSL=false" y "verifyServerCertificate=false", que en algunos casos es diferente de la configuración predeterminada para Connector/ J 8.0.12 y anteriores. Las aplicaciones que sigan usando los antiguos atributos y dependan de sus antiguos valores predeterminados deberían ser revisadas. En algunos casos es 12 o antes. Las aplicaciones que sigan usando los antiguos atributos y dependan de sus antiguos valores predeterminados deberían ser revisadas. En algunos casos es 12 o antes. Las aplicaciones que sigan usando los antiguos atributos y dependan de sus antiguos valores predeterminados deberían ser revisadas.

Si "sslMode" está explícitamente activado, se ignora la propiedad antigua. Si "sslMode" o "useSSL" no están explícitamente definidos, se aplica la configuración predeterminada "sslMode=PREFERRED".

Configuración de JDBC para desactivar conexiones seguras:sslmode=deshabilitado




Anterior:Cómo renombrar archivos en lotes en Linux
Próximo:Cómo restringir el registro de usuarios taiwaneses, publicar información a voluntad y pedir consejo sobre cómo escribir.
 Propietario| Publicado el 11-2-2022 14:04:39 |
Cadena de conexión de bases de datos de resorte

Publicado el 13-2-2022 16:31:57 |
Aprende a aprender.
 Propietario| Publicado el 25-04-2024 08:38:32 |
Excepción en 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): El método de autenticación 'caching_sha2_password' falló. O bien utiliza una conexión segura, especifica la clave pública RSA del servidor con ServerRSAPublicKeyFile, o establece AllowPublicKeyRetrieval=True.


solución

Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com