>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 전역 SQL_MODE를 영구적으로 설정하는 방법은 무엇입니까?

MySQL에서 전역 SQL_MODE를 영구적으로 설정하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-01 17:00:12619검색

How to Permanently Set Global SQL_MODE in MySQL?

MySQL에서 전역 SQL_MODE 설정: 가이드

MySQL로 작업할 때 SQL_MODE 설정을 수정해야 하는 경우가 종종 있습니다. 이 모드는 다양한 SQL 동작 및 파서 구성을 제어하며 데이터 유효성 검사, 트랜잭션 처리 등과 같은 요소에 영향을 미칩니다.

명령 구조가 올바른가요?

다중 모드를 설정하는 구문은 다음과 같습니다. SET 명령을 사용하는 SQL_MODE가 정확합니다:

SET GLOBAL SQL_MODE='NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLE','NO_AUTO_CREATE_USER','NO_ENGINE_SUBSTITUTION'

세션과 글로벌의 장점 모드

  • 세션 모드: 현재 세션에만 영향을 미치며 세션 종료 시 재설정됩니다. 임시 또는 사용자별 SQL_MODE 설정에 적합합니다.
  • 전역 모드: 수정될 때까지 모든 후속 세션에 영향을 줍니다. 모든 사용자에게 적용되는 시스템 전체의 영구 구성에 적합합니다.

글로벌 모드와 세션 모드

다른 사용자를 사용하여 UNC 값으로 데이터베이스를 업데이트하는 것과 같은 시나리오에 직면한 경우 , NO_BACKSLASH_ESCAPES에 대한 전역 모드를 설정하는 것은 세션에 관계없이 모든 사용자가 영향을 받도록 보장하기 때문에 의미가 있습니다. settings.

전역 SQL_MODE를 영구적으로 설정

안타깝게도 SET를 사용하여 전역 설정을 직접 수정하는 것은 지속되지 않으며 MySQL을 다시 시작한 후에 재설정됩니다. 변경 사항을 영구적으로 적용하려면 구성 파일(/etc/mysql/my.cnf)에서 모드를 설정하세요.

[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

최신 MySQL 버전(예: 5.7.8 )의 경우 다음 구문을 사용하세요.

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

결론

모든 사용자에게 영향을 미치는 시스템 전체의 지속적인 SQL_MODE 설정의 경우, 전역 모드를 설정하는 것이 선호되는 접근 방식입니다. 원하는 SQL 동작이 세션 전체에서 일관되도록 구성 파일을 영구적으로 변경해야 합니다.

위 내용은 MySQL에서 전역 SQL_MODE를 영구적으로 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.