이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 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: 공개키 검색이 허용되지 않음 안내가 나타납니다

가장 쉬운 우회 방법은 연결 후에 추가하는 것입니다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

사용 허가'; ' 하나의 문장에서 여러 쿼리(참/거짓)를 분리합니다. 기본 값은 "false"이며, rewriteBatchStatements에 의존하는 addBatch() 및 executeBatch() 메서드에는 영향을 주지 않습니다.

MySQL이 데이터베이스에 연결될 때, 다음과 같은 문장을 추가하세요:allowMultiQueries=true":

1. SQL 문장 뒤에 세미콜론을 붙여 다중 문장 실행을 할 수 있습니다.
2. 배치 처리를 수행할 수 있으며 여러 SQL 문장을 동시에 발행할 수 있습니다.


ssl모드

기본적으로 네트워크 연결은 SSL 암호화되어 있습니다; 이 기능을 통해 보안 연결을 끌거나 다른 보안 수준을 선택할 수 있습니다. 허용되는 값은 다음과 같습니다: "DISABLED" - 암호화되지 않은 연결이 설정됨; "선호" - (기본값) 서버가 암호화된 연결을 활성화하면 암호화된 연결이 설정되고, 그렇지 않으면 암호화되지 않은 연결로 되돌아가; "필수" - 서버가 보안 연결을 활성화했을 때 이를 구축해야 하며, 그렇지 않으면 실패합니다; "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" 설정과 동등하며, 이는 커넥터/와 동일합니다. 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




이전의:리눅스에서 파일 이름을 배치별로 바꾸는 방법
다음:대만 사용자들의 등록을 제한하는 방법, 자유롭게 정보를 게시하는 방법, 그리고 글쓰기 방법에 대한 조언 요청.
 집주인| 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' 실패. 보안 연결을 사용하거나, 서버의 RSA 공개키를 ServerRSAPublicKeyFile으로 지정하거나, AllowPublicKeyRetrieval=True를 설정하세요.


용액

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com