Оптимізовано продуктивність конфігурацій Java JDBC rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries та sslMode.
Документація всіх властивостей конфігурації JDBC:Вхід за гіперпосиланням видно.
Огляд:
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=вимкнено
|