MySQL 오류: "이 함수의 선언에는 DETERMINISTIC, NO SQL 또는 READS SQL DATA가 없으며 바이너리 로깅이 활성화되었습니다."
데이터베이스를 MySQL로 가져오려고 하면 함수 선언에 DETERMINISTIC, NO SQL 또는 READS SQL DATA 선언 중 하나가 부족함을 나타내는 오류가 발생할 수 있습니다. 이 오류는 바이너리 로깅이 활성화될 때 발생합니다.
오류 해결:
이 오류는 두 가지 방법으로 해결할 수 있습니다:
MySQL 콘솔 구성: MySQL 콘솔에서 다음 명령을 실행합니다.
SET GLOBAL log_bin_trust_function_creators = 1;
구성 파일 편집: 다음 줄을 추가합니다. mysql.ini 구성 파일에:
log_bin_trust_function_creators = 1;
이러한 수정을 통해 비결정적 기능을 바이너리 로깅과 함께 사용할 수 있습니다. 그러나 바이너리 로깅이 비활성화된 경우 이러한 설정은 오류에 영향을 미치지 않습니다.
함수 선언 이해:
비결정적 명령이 포함된 함수는 NOW() 또는 UUID()와 같은 형식은 NOT DETERMINISTIC으로 선언되어야 합니다. 또한 복제되지 않은 스키마에서 데이터를 읽는 함수도 비결정적입니다.
모범 사례:
이상적인 접근 방식은 저장된 함수에 대한 결정적 선언을 이해하고 활용하는 것입니다. 복제 최적화에 도움이 되기 때문입니다. MySQL은 잠재적인 오류를 방지하기 위해 저장된 함수 정의에서 언급된 선언 중 하나를 명시적으로 지정할 것을 권장합니다.
위 내용은 바이너리 로깅이 활성화된 경우 MySQL에서 결정적 함수에 대한 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!