この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 13228|答える: 3

[出典] Java JDBCのrewriteBatchedStatements, allowPublicKeyRetrieval...

[リンクをコピー]
2022年2月11日 13:59:18に投稿 | | |
Java JDBCのrewriteBatchedStatements、allowPublicKeyRetrieval、allowMultiQueries、sslMode構成のパフォーマンスを最適化しました。

jdbc すべての構成プロパティドキュメント:ハイパーリンクのログインが見えます。

復習:

.NET/C# MySQLデータベース向けにSslModeのパフォーマンスを最適化
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

MySQL 8.0を使う場合、アプリを再起動した後にcom.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrievalは許可されていません

一番簡単な回避策は、接続後にそれを追加することですallowPublicKeyRetrieval=true

ユーザーがsha256_password認証を使用する場合、パスワードはTLSプロトコルで転送中に保護されなければなりませんが、RSA公開鍵が利用できない場合はサーバーが提供する公開鍵を使用できます。 サーバーのRSA公開鍵は、接続時にServerRSAPublicKeyFileやAllowPublicKeyRetrieval=Trueパラメータで指定し、クライアントがサーバーから公開鍵を取得できるようにします。 ただし、AllowPublicKeyRetrieval=Trueは悪意のあるエージェントが中間者攻撃(MITM)を通じて平文パスワードを取得する可能性があるため、デフォルトでは無効化されており、明示的に有効化する必要があります。



rewriteBatchedStatements

高パフォーマンスのバッチ挿入を実現するために、MySQLのJDBC接続のURLにrewriteBatchedStatementsパラメータを追加し、ドライバーバージョン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

使用許可を要します。 複数のクエリ(真偽)を1つの文に分離します。 デフォルト値は「false」で、rewriteBatchStatementsに依存するaddBatch()およびexecuteBatch()メソッドには影響しません。

MySQLがデータベースに接続したら、文「」を追加します。allowMultiQueries=true「:

1. SQL文の後にセミコロンを付けることで、複数文の実行が可能です。
2. バッチ処理を行い、複数のSQL文を同時に発行できます。


sslモード

デフォルトではネットワーク接続は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のセキュア接続をオフにする設定:SSLモード=無効化




先の:Linuxでファイルのバッチリネームの方法
次に:台湾のユーザーの登録を制限する方法、自由に情報を投稿する方法、そして書き方についてアドバイスを求める方法。
 地主| 2022年2月11日 14:04:39に投稿 |
Springデータベース接続文字列

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」が失敗しました。 安全な接続を使うか、ServerRSAPublicKeyFileでサーバーのRSA公開鍵を指定するか、AllowPublicKeyRetrieval=Trueを設定するかのいずれかです。


解決

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com