Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 13228|Відповідь: 3

[Джерело] Java JDBC переписує BatchedStatements, 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

Дозвіл на використання'; ' Розділяє кілька запитів (істинно/хибно) в одному твердженні. Значення за замовчуванням є «false», що не впливає на методи addBatch() та executeBatch(), які залежать від rewriteBatchStatements.

Коли MySQL підключається до бази даних, додайте заяву:"allowMultiQueries=trueРоль ":

1. Ви можете ставити крапку з комою після SQL-оператора, щоб виконати багатооператорне виконання.
2. Можна виконувати пакетну обробку та одночасно видавати кілька SQL-операторів.


sslMode

За замовчуванням мережеві з'єднання зашифровані SSL; Ця властивість дозволяє вимкнути захищене з'єднання або обрати інший рівень безпеки. Дозволені такі значення: «DISABLED» — встановлено незашифроване з'єднання; "PREFERRED" — (за замовчуванням) Якщо сервер підтримує зашифровані з'єднання, встановлюється зашифроване з'єднання, інакше воно повертається до незашифрованого з'єднання; "ОБОВ'ЯЗКОВО" — Встановити безпечне з'єднання, якщо сервер його увімкнув, інакше воно відмовить; "VERIFY_CA" — подібно до "REQUIRED", але додатково перевіряє серверний TLS-сертифікат за налаштованим сертифікатом центру (CA); "VERIFY_IDENTITY" — як "VERIFY_CA",

Цей атрибут замінює застарілі атрибути "useSSL", "requireSSL" та "verifyServerCertificate", які все ще приймаються, але конвертуються у значення "sslMode", якщо "sslMode" не встановлено явно: "useSSL=false" конвертується у "sslMode=disabled"; {"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 |
Навчіться вчитися.
 Орендодавець| Опубліковано 2024-4-25 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