MariaDB 저장 프로시저 예외 정보: 예기치 않은 스트림 끝, 0바이트 읽기 오류
P粉004287665
2023-08-26 22:16:32
<p>MariaDB에는 서버에서 잘 실행되는 저장 프로시저가 있지만 JDBC를 사용하여 클라이언트에서 이를 실행하면 처음 몇 행을 얻을 수 있지만 나중에는 항상 다음 오류가 발생합니다. </p>
<pre class="brush:php;toolbar:false;">예기치 않은 스트림 끝, 4에서 0바이트를 읽습니다(소켓이 서버에 의해 닫혔습니다)</pre>
<p>Table<code>loan_balances2</code>는 약 600,000행으로 너무 크지 않습니다. 이것은 저장 프로시저입니다. 뭔가 문제가 있습니까? 감사해요! </p>
<pre class="brush:php;toolbar:false;">프로시저 생성 `get_loan_balances_sample`()
시작하다
all_loan_ids가 있으면 테이블을 삭제합니다.
Random_loan_ids가 있으면 테이블을 삭제합니다.
Loan_balances2에서 고유한 Loan_id를 선택하여 all_loan_ids 테이블을 생성합니다.
RAND() 제한 50을 기준으로 all_loan_ids 순서에서 * 선택하여 Random_loan_ids 테이블을 생성합니다.
SELECT * 대출_잔액2에서
where Loan_id in (random_loan_ids에서 Loan_ID 선택)
대출_ID, 잔고_날짜별 주문;
종료</pre></p>
보통 net_write_timeout입니다. 애플리케이션이 서버의 쓰기 속도로 데이터를 읽을 수 없으면 서버는 소켓을 닫습니다. net_write_timeout은 서버가 결과 세트 전송을 시도하는 시간 제한(초)입니다. 세션 변수인 이 제한을 늘릴 수 있습니다. 이는 MariaDB JDBC의 FAQ에도 나타납니다.