Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 13228|Ответ: 3

[Источник] Java JDBC rewriteBatchedStatements, allowPublicKeyRetrieval...

[Скопировать ссылку]
Опубликовано 2022-2-11 13:59:18 | | |
Оптимизирована производительность конфигураций Java JDBC rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries и sslMode.

Вся документация по свойствам конфигурации JDBC:Вход по гиперссылке виден.

Обзор:

.NET/C# Оптимизировал производительность SslMode для баз данных MySQL
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

При использовании MySQL 8.0, после перезапуска приложения, вам предлагается com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Извлечение публичных ключей не разрешено

Самое простое решение — добавить его после подключения.allowPublicKeyRetrieval=true

Если пользователь использует sha256_password аутентификацию, пароль должен быть защищён при передаче с помощью протокола TLS, но если открытый ключ RSA недоступен, можно использовать публичный ключ, предоставленный сервером; RSA-открытый ключ сервера может быть задан в соединении через ServerRSAPublicKeyFile или параметр AllowPublicKeyRetrieval=True, чтобы клиент мог получить открытый ключ с сервера; Однако следует отметить, что AllowPublicKeyRetrieval=True может привести к тому, что злоумышленники получают открытые пароли посредством атак man-in-the-middle (MITM), поэтому он по умолчанию отключён и должен быть явно активирован.



rewriteBatchedStatements

Для достижения высокопроизводительной пакетной вставки путём добавления параметра rewriteBatchedStatements к URL соединения JDBC в MySQL и гарантии использования драйвера версии 5.1.13 или более поздней. По умолчанию драйвер MySQL JDBC игнорирует оператор executeBatch(), разделяет набор SQL-операторов, которые мы ожидаем выполнять пакетами, и отправляет их в базу данных MySQL по одному.
Только установив параметр rewriteBatchedStatements в true, драйвер запускает SQL пакетами
Эта опция также актуальна для INSERT/UPDATE/DELETE

По умолчанию драйвер MySQL Jdbc игнорирует оператор executeBatch(), разбивает набор SQL-операторов, которые мы ожидаем выполнять пакетами, и отправляет их в базу данных MySQL по одному, что напрямую приводит к низкой производительности.

Только установив параметр rewriteBatchedStatements в true, драйвер поможет вам массово запускать SQL (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


allowMultiQueries

Разрешение на использование'; ' Разделяет несколько запросов (true/false) в одном утверждении. Значение по умолчанию — «false», которое не влияет на методы addBatch() и executeBatch(), которые зависят от rewriteBatchStatements.

Когда MySQL подключается к базе данных, добавьте оператор:allowMultiQueries=trueРоль ":

1. После SQL-оператора можно поставить точку с запятой, чтобы добиться выполнения нескольких операторов.
2. Можно выполнять пакетную обработку и одновременно выпускать несколько SQL-операторов.


sslMode

По умолчанию сетевые соединения зашифрованы SSL; Это свойство позволяет отключить защищённое соединение или выбрать другой уровень безопасности. Допускаются следующие значения: «ОТКЛЮЧЕНО» — устанавливается незашифрованное соединение; «PREFERRED» — (по умолчанию) Если сервер поддерживает зашифрованные соединения, устанавливается зашифрованное соединение, иначе оно возвращается к незашифрованному; «ТРЕБУЕТСЯ» — установить защищённое соединение, если сервер его включил, иначе оно не работает; «VERIFY_CA» — аналогично «REQUIRED», но дополнительно проверяет серверный TLS сертификат по сертификату настроенного центра сертификации (CA); «VERIFY_IDENTITY» — как «VERIFY_CA»,

Этот атрибут заменяет устаревшие атрибуты "useSSL", "requireSSL" и "verifyServerCertificate", которые всё ещё принимаются, но преобразуются в значение "sslMode", если "sslMode" явно не установлен: "useSSL=false" преобразуется в "sslMode=отключённый"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} переводится как "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} переводится как "sslMode=REQUIRED"; {"useSSL=true" И "verifyServerCertificate=true"} переводится как "Настройка по умолчанию для "sslMode" — "PREFERRED", что эквивалентно традиционным настройкам "useSSL=true", "requireSSL=false" и "verifyServerCertificate=false", которые совпадают с настройками Connector/ Настройки по умолчанию для J 8.0.12 и более ранних версий в некоторых случаях отличаются. Приложения, которые продолжают использовать старые атрибуты и используют свои стандартные настройки, должны быть пересмотрены. Настройка по умолчанию для «sslMode» — «PREFERRED», что эквивалентно традиционным настройкам «useSSL=true», «requireSSL=false» и «verifyServerCertificate=false», что в некоторых случаях отличается от стандартных настроек для Connector/J 8.0.12 и более ранних вариантов. Приложения, которые продолжают использовать старые атрибуты и используют свои стандартные настройки, должны быть пересмотрены. В некоторых случаях это 12 или раньше. Приложения, которые продолжают использовать старые атрибуты и используют свои стандартные настройки, должны быть пересмотрены. В некоторых случаях это 12 или раньше. Приложения, которые продолжают использовать старые атрибуты и используют свои стандартные настройки, должны быть пересмотрены.

Если «sslMode» установлено явно, старое свойство игнорируется. Если «sslMode» или «useSSL» явно не установлены, применяется стандартная настройка «sslMode=PREFERRED».

Настройки JDBC для отключения защищённых соединений:sslmode=отключён




Предыдущий:Как переименовывать файлы пакетами в Linux
Следующий:Как ограничить регистрацию тайваньскими пользователями, публиковать информацию по своему усмотрению и просить советы по написанию.
 Хозяин| Опубликовано 2022-2-11 14:04:39 |
Строка соединения базы данных пружины

Опубликовано 2022-2-13 16:31:57 |
Учитесь учиться.
 Хозяин| Опубликовано 25.04.2024 08:38:32 |
Исключение 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): Метод аутентификации 'caching_sha2_password' провалился. Либо используйте защищённое соединение, либо укажите RSA-публичный ключ сервера с помощью ServerRSAPublicKeyFile, либо установите AllowPublicKeyRetrieval=True.


решение

Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com