programing

MySQL: sql_mode 영구 설정

powerit 2023. 9. 15. 21:26
반응형

MySQL: sql_mode 영구 설정

MySQL 명령줄 클라이언트를 통해 글로벌 mysql_mode를 설정하려고 합니다.

SET GLOBAL sql_mode = TRADITIONAL;

이것은 현재 세션에서 작동하지만 서버를 다시 시작한 후 sql_mode는 기본값인 빈 문자열인 ''로 돌아갑니다.

sql_mode를 TRADITAL로 영구적으로 설정하려면 어떻게 해야 합니까?

관련된 경우 MySQL은 WAMP 패키지의 일부입니다.

감사해요.

MySQL sql_mode"TRADITIONAL", MySQL 문서에서 정의하는 일명 "엄격 모드"는 다음과 같습니다.

열에 잘못된 값을 삽입할 경우 "경고 대신 오류를 부여"합니다.

다음은 sql_mode가 다음과 같이 설정되어 있는지 확인하는 방법입니다."TRADITIONAL".

먼저 현재 설정을 확인합니다.

mysql
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
|                   |
+-------------------+
1 row in set (0.00 sec)

기본값인 공백이 반환되었습니다. 심각합니다. sql_mode가 "TRADIATIONAL"로 설정되어 있지 않습니다.

따라서 구성 파일을 편집합니다.

sudo vim /etc/mysql/my.cnf

레이블이 지정된 섹션에 이 줄을 추가합니다.[mysqld]:sql_mode="TRADITIONAL"(팬시팬츠 지적대로)

그런 다음 서버를 다시 시작합니다.

sudo service mysql restart

그런 다음 다시 확인합니다.

mysql
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode                                                                                                                                    |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

성공!당신은 이제 황금입니다.

이 파일을 my.cnf 파일(또는 window를 사용하는 경우 my.ini)에 추가합니다.

sql_mode="TRADITIONAL"

서버를 재시작합니다.

창에 있는 mysql8의 경우:

# Set the SQL mode to strict
sql-mode="NO_ENGINE_SUBSTITUTION"

밑줄이 아닌 대시입니다. sql_mode / sql-mode

Digital Ocean을 사용하는 경우, mysql.cnf파일은 에뮬레이트되며 실제로 데이터베이스와 상호 작용하지 않습니다.이 경우 sql-mode를 (빈 sql 모드의 경우) ...로 설정합니다.

doctl databases sql-mode set DB-UUID ""

DB UUID를 모르는 경우 다음 항목을 통해 확인하십시오.

GET DB UUID with: doctl databases list

출처: digitalocean.com : docl 데이터베이스sql-mode 집합

언급URL : https://stackoverflow.com/questions/20373532/mysql-setting-sql-mode-permanently

반응형