> 데이터 베이스 > MySQL 튜토리얼 > 내 MySQL 애플리케이션에서 \'PreparedStatement Needs to Be Re-prepared\' 치명적인 오류가 발생하는 이유는 무엇입니까?

내 MySQL 애플리케이션에서 \'PreparedStatement Needs to Be Re-prepared\' 치명적인 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-29 07:03:10
원래의
555명이 탐색했습니다.

Why Does My MySQL Application Throw a

MySQL 치명적인 오류 문제 해결: "준비된 문을 다시 준비해야 합니다."

최근 호스팅 서버로 마이그레이션하는 과정에서 사용자가 MySQL 저장 프로시저를 사용하여 웹 사이트에 액세스할 때 지속적으로 치명적인 오류가 발생했습니다. 오류 메시지는 준비된 문을 다시 준비해야 함을 나타냅니다.

문제 조사

"준비된 문을 다시 준비해야 합니다"라는 오류는 두 문 사이의 불일치를 나타냅니다. 로컬 및 서버 환경. 다음을 포함한 다양한 이유에서 발생할 수 있습니다.

  • MySQL 구성 설정
  • 호환되지 않는 데이터베이스 버전
  • 쿼리 또는 연결 문제

해결책: MySQL 구성 조정

다른 항목을 제거한 후 잠재적인 원인으로 인해 문제는 알려진 MySQL 버그(#42041)로 추적되었습니다. 제안되는 해결 방법은 table_definition_cache 설정 값을 늘리는 것입니다.

table_definition_cache는 MySQL이 메모리에 캐시하는 테이블 정의 수를 결정합니다. 값이 낮으면 서버가 업데이트된 정의가 있는 테이블을 발견할 경우 준비된 명령문을 다시 준비하게 될 수 있습니다.

MySQL 구성 업데이트

table_definition_cache 설정을 조정하려면, 다음 단계를 따르십시오.

  1. MySQL my.cnf 구성 편집 file.
  2. 다음 줄을 추가하거나 수정합니다.

    table_definition_cache=<new_value>
    로그인 후 복사

    여기서 4096 또는 8192와 같이 더 큰 값입니다.

  3. MySQL 서비스를 다시 시작합니다.

추가 고려 사항

문 캐싱 등의 다른 요인에 의해서도 영향을 받을 수 있습니다. as:

  • 문 캐싱에 할당되는 최대 메모리 양을 제어하는 ​​MySQL max_statement_cache_size 설정.
  • MySQL이 쿼리 캐싱을 관리하는 방법을 결정하는 query_cache_type 설정.

문에 대한 자세한 내용은 MySQL 설명서를 참조하세요. 캐싱.

이 경우 사용자는 table_definition_cache 설정 값을 늘려 문제를 해결하고 치명적인 오류를 없앨 수 있었습니다.

위 내용은 내 MySQL 애플리케이션에서 \'PreparedStatement Needs to Be Re-prepared\' 치명적인 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿