programing

.cnf에서 sql_mode를 변경해도 @@sql_mode가 변경되지 않는 MariaDB 10.5의 이유는 무엇입니까?

easyjava 2023. 10. 1. 23:07
반응형

.cnf에서 sql_mode를 변경해도 @@sql_mode가 변경되지 않는 MariaDB 10.5의 이유는 무엇입니까?

MariaDB 10.5를 실행하는 Fedora Desktop 35, 약 한 달 전부터 완전히 새로 설치되었습니다.

왜 나의 변화는/etc/my.cnf/mariadb-server.cnf sql_mode변화하는@@GLOBAL.sql_mode그러나 그렇지는@@sql_mode?

제거하려고 합니다.STRICT_TRANS_TABLES나의sql_mode(INSERT에서 생략해야 하는 DATETIME NOT NULL 열이 있으며 기본값을 가정하도록 합니다.)내 시스템에는 거의 비어있는 간단한 MariaDB 설치가 있습니다./etc/my.cnf에 있는 모든 파일을 포함합니다./etc/my.cnf.d가 있는 곳에mariadb-server.cnf와 함께[server]설정할 수 있는 섹션sql-mode.

생략할 경우 https://mariadb.com/docs/reference/mdb/system-variables/sql_mode/ 에 지정된 대로 기본값은 다음으로 설정됩니다.STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION. 다람쥐를 통해 조회하여 확인SQL:

SELECT @@GLOBAL.sql_mode global, @@sql_mode;
global  @@sql_mode
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION   STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

기본적으로 둘 다@@sql_mode그리고.@@GLOBAL.sql_mode동치입니다.

에 추가하기mariadb-server.cnf([server]라인이 이미 있음):

[server]
sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

서버를 다시 시작할 때systemctl restart mariadb, 저널에 오류가 없습니다. 위에서 쿼리를 다시 실행합니다.

global  @@sql_mode
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION   STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

전 세계적으로sql_mode더 이상 가지고 있지 않은STRICT_TRANS_TABLES, 하지만 비지구적인 것은 그렇지요!왜, 그리고 내가 어떻게 할 수 있을까요?

엄격한 규칙이 적용되어 삽입이 여전히 실패합니다.

언급URL : https://stackoverflow.com/questions/70271204/mariadb-10-5-changing-sql-mode-in-cnf-does-not-change-sql-mode-why

반응형