|
|
Zveřejněno 11. 2. 2022 13:59:18
|
|
|

Optimalizováno výkon konfigurací rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQuery a sslMode v Java JDBC.
Dokumentace všech konfiguračních vlastností jdbc:Přihlášení k hypertextovému odkazu je viditelné.
Přezkoumání:
povolitVeřejnéKlíčové vyhledávání
Při používání MySQL 8.0 jste po restartu aplikace vyzváni com.mysql.jdbc.exceptions.jdbc4.MySQL N.onTransientConnectionException: Vyhledávání veřejného klíče není povoleno
Nejjednodušší řešení je přidat ho až po připojeníallowPublicKeyRetrieval=true
Pokud uživatel použije sha256_password autentizaci, musí být heslo chráněno při přenosu pomocí protokolu TLS, ale pokud není dostupný veřejný klíč RSA, lze použít veřejný klíč poskytnutý serverem; Veřejný RSA klíč serveru lze zadat v spojení přes ServerRSAPublicKeyFile, nebo parametr AllowPublicKeyRetrieval=True, který umožní klientovi získat veřejný klíč ze serveru; Je však třeba poznamenat, že AllowPublicKeyRetrieval=True může způsobit, že škodliví agenti získávají hesla v otevřeném textu prostřednictvím útoků typu man-in-the-middle (MITM), takže je ve výchozím nastavení vypnutý a musí být explicitně povolen.
přepisovatDávkovaVýkazy
Aby bylo dosaženo vysoce výkonné dávkové vkládání, přidáním parametru rewriteBatchedStatements do URL JDBC spojení v MySQL a zajištěním záruky verze ovladače 5.1.13 nebo novší. Ve výchozím nastavení MySQL JDBC ovladač ignoruje příkaz executeBatch(), rozdělí sadu SQL příkazů, které očekáváme, že se spustí v dávkách, a odesílá je do MySQL databáze jednu po druhé. Pouze nastavením parametru rewriteBatchedStatements na true bude ovladač vykonávat SQL v dávkách Tato možnost platí také pro INSERT/UPDATE/DELETE
Ve výchozím nastavení ovladač MySQL Jdbc ignoruje příkaz executeBatch(), rozděluje sadu SQL příkazů, které očekáváme, že budou spuštěny v dávkách, a odesílá je do MySQL databáze jednu po druhé, což přímo způsobuje nízký výkon.
Pouze nastavením parametru rewriteBatchedStatements na true, ovladač vám pomůže spustit SQL ve velkém (jdbc:mysql://ip:port/db?)přepisovatBatchedStatements=pravda)
allowMultiQueries
Povolení k použití'; ' Rozděluje více dotazů (pravda/nepravda) v jednom tvrzení. Výchozí hodnota je "false", což neovlivňuje metody addBatch() a executeBatch(), které závisí na rewriteBatchStatements.
Když se MySQL připojí k databázi, přidejte příkaz:"allowMultiQueries=trueRole ":
1. Za SQL příkazem můžete nést středník pro dosažení vícenásobného vykonávání příkazů. 2. Lze provádět dávkové zpracování a vydat více SQL příkazů současně.
sslMode
Ve výchozím nastavení jsou síťová připojení šifrována přes SSL; Tato vlastnost vám umožňuje vypnout bezpečné připojení nebo zvolit jinou úroveň zabezpečení. Jsou povoleny následující hodnoty: "DISABLED" – je navázáno nešifrované spojení; "PREFERRED" - (výchozí) Pokud server povolí šifrovaná spojení, naváže se šifrované spojení, jinak se vrátí k nešifrovanému spojení; "POVINNÉ" – Navázejte bezpečné připojení, pokud server toto povolení ukázal, jinak selže; "VERIFY_CA" – Podobné jako "REQUIRED", ale navíc ověřuje TLS certifikát serveru vůči certifikátu konfigurované certifikační autority (CA); "VERIFY_IDENTITY" – jako "VERIFY_CA",
Tento atribut nahrazuje zastaralé atributy "useSSL", "requireSSL" a "verifyServerCertificate", které jsou stále přijímány, ale převádějí se na hodnotu "sslMode", pokud "sslMode" není explicitně nastaveno: "useSSL=false" se převede na "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} je přeloženo jako "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} se překládá jako "sslMode=REQUIRED"; {"useSSL=true" A "verifyServerCertificate=true"} je přeloženo jako "Výchozí nastavení pro "sslMode" je "PREFERRED", což odpovídá tradičním nastavením "useSSL=true", "requireSSL=false" a "verifyServerCertificate=false", což je stejné jako u Connector/ Výchozí nastavení pro J 8.0.12 a starší verze se v některých případech liší. Aplikace, které nadále používají staré atributy a spoléhají na své výchozí nastavení, by měly být přezkoumány. Výchozím nastavením pro "sslMode" je "PREFERRED", což odpovídá tradičním nastavením "useSSL=true", "requireSSL=false" a "verifyServerCertificate=false", což se liší od výchozího nastavení pro Connector/J 8.0.12 a v některých případech starší. Aplikace, které nadále používají staré atributy a spoléhají na své výchozí nastavení, by měly být přezkoumány. V některých případech je to 12 let nebo dříve. Aplikace, které nadále používají staré atributy a spoléhají na své výchozí nastavení, by měly být přezkoumány. V některých případech je to 12 let nebo dříve. Aplikace, které nadále používají staré atributy a spoléhají na své výchozí nastavení, by měly být přezkoumány.
Pokud je "sslMode" explicitně nastaveno, stará vlastnost se ignoruje. Pokud není explicitně nastaveno "sslMode" nebo "useSSL", je aplikováno výchozí nastavení "sslMode=PREFERRED".
Nastavení JDBC pro vypnutí zabezpečených připojení:sslmode=disabled
|
Předchozí:Jak přejmenovávat soubory v dávkách v LinuxuDalší:Jak omezit tchajwanské uživatele v registraci, zveřejňování informací podle libosti a žádání o rady, jak psát.
|