Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 13228|Отговор: 3

[Източник] Java JDBC's rewrite: BatchedStatements, allowPublicKeyRetrieval...

[Копирай линк]
Публикувано на 2022-2-11 13:59:18 | | |
Оптимизира производителността на конфигурациите на Java JDBC за преписане на BatchedStatements, 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 може да накара злонамерени агенти да получават пароли с открит текст чрез атаки "човек в средата" (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=изключено"; {"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=disabled




Предишен:Как да преименувам файлове на партиди в Linux
Следващ:Как да ограничите тайванските потребители да се регистрират, да публикувате информация по желание и да поискате съвет как да пишете.
 Хазяин| Публикувано на 2022-2-11 14:04:39 |
Spring database connection string

Публикувано на 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