HOME > 이용안내
이용안내
 
작성일 : 19-08-14 11:19
[DB] [mysql]MySQL 5.6 SQL STRICT 모드 변경 방법
 글쓴이 : 제이네트워크
조회 : 891  

[MySQL 5.6 SQL STRICT 모드 변경 방법]


MySQL 5.x 버전에서는  SQL 모드의 기본 값이 strict mode 모드 입니다.
MySQL 버전을 상위버전으로 업그레이드 할 경우 NULL 값으로 인하여 오류가 생기는 문제가 많이 발생을 합니다


STRICT 모드에 따라서 어떤문제가 발생하는 가는 아래 예제를 참고 하세요


예) SMILE 컬럼에 NOT NULL 속성이 포함되어 있습니다.


STRICT 모드 : SMILE 컬럼에 꼭 값이 입력되어야 합니다.
STRICT 모드 비활성화 : SMILE 컬럼에 값이 공백 또는 NULL 값으로 해도 데이터가 입력이 됩니다.


SQL 모드의 종류는 mysql 홈페이지 url을 참고 하시면 됩니다.
http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html


 
1.SQL 모드 확인

mysql-5.6 버전은 기본값이 STRICT 모드가 활성화 되어 있습니다.

mysql> SELECT @@global.sql_mode;
+——————————————–+
| @@global.sql_mode |
+——————————————–+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+——————————————–+
1 row in set (0.00 sec)



2 .데이터 입력 테스트

컬럼속성을 NOT NULL 로 생성합니다.

mysql> create table test (no int(10) unsigned not null AUTO_INCREMENT primarykey);
Query OK, 0 rows affected (0.04 sec)

+——-+——————+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+——-+——————+——+—–+———+—————-+
| no | int(10) unsigned | NO | PRI | NULL | auto_increment |
+——-+——————+——+—–+———+—————-+
1 row in set (0.00 sec)

 


[INSERT]

mysql> INSERT INTO SMILE.`test` (`no`) VALUES (‘1’);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO SMILE.`test` (`no`) VALUES (”);
ERROR 1366 (HY000): Incorrect integer value: ” for column ‘no’ at row 1

값을 입력할경우 정상적으로 입력이 되지만 NULL 또는 값을 입력하지 않을 경우에는 입력이 안되게 됩니다.

 


[STRITC 모드로 변경]

/etc/my.cnf
혹은
/usr/local/mysql/my.cnf  파일 2개를 변경해야 적용되는 경우도 있습니다. (해당 파일은설치 경로에 따라서 다릅니다)


sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
라는 구문을 찾아서


#sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”  로 변경합니다.



[모드 변경 환인]

mysql> SELECT @@global.sql_mode;
+————————+
| @@global.sql_mode |
+————————+
| NO_ENGINE_SUBSTITUTION |
+————————+
1 row in set (0.00 sec)


 
모드 변경 후 데이터 INSERT

mysql> INSERT INTO SMILE.`test` (`no`) VALUES (”);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> INSERT INTO SMILE.`test` (`no`) VALUES (NULL);
Query OK, 1 row affected (0.00 sec)

STRICT 모드를 비활성화 한 후 데이터가 없거나, NULL 값으로 입력을 해도 정상적으로 데이터가

입력되는걸 확인할 수 있습니다.


mysql> select * from test;
+—-+
| no |
+—-+
| 1 |
| 2 |
| 3 |
| 4 |
+—-+


최신 버전을 사용할 경웨 위의 문제로인하여 데이터베이스 값을 입력시 오류가 발생 할 수 있으니
참고하시면 되겠습니다






Cloud server Streaming service Domain Cloud Firewall

 
 

Total 53

번호 제   목   글쓴이 날짜 조회
53 [DB] MSSQL2016 에서 서버유지관리/ 백업스케쥴 실행시 에러가 날때 제이네트워크 2019-08-22 736
52 [DB] [mysql]MySQL 5.6 SQL STRICT 모드 변경 방법 제이네트워크 2019-08-14 892
51 [DB] MSSQL SERVER 테이블변경시 제한시간이 만료되었습니다. 라는 에러발생시 제이네트워크 2019-01-30 2321
50 [DB] MSSQL 1씩 자동증가값 제어(ID 사양 변경 안될 경우) 제이네트워크 2019-01-30 2407
49 [DB] mysql-5.7.x 이상 버전에서 비번 변경 후 에러가 나올 때 제이네트워크 2019-01-22 2512
48 [DB] MSSQL2008 로그 줄이기 제이네트워크 2018-11-29 3025
47 [DB] mtysql 5.7 이상버전에서 root 패스워드 변경시 제이네트워크 2017-11-25 4304
46 [DB] [mysql] mysql 덤프파일 복구시 에러시 - Got a packet bigger than 'max_allowed_packet&… 제이네트워크 2017-09-14 4358
45 [DB] SQL Server Management Studio 설치 안될 때 제이네트워크 2017-02-28 7001
44 [DB] [Mysql] MYSQL-InnoDB-데이터-복구-방법 제이네트워크 2016-12-11 8951
43 [DB] [Mysql] mysql 엔진 Myisam 을 Innodb로 변경하는 방법 제이네트워크 2016-12-11 5879
42 [DB] [Mysql] mysql 기본 스토리지 엔진확인 제이네트워크 2016-12-10 5503
41 [DB] [Mysql] show processlist 계속 보기 제이네트워크 2016-12-10 5701
40 [DB] [MS-SQL 쿼리] 해당 컬럼을 NULL 값으로 변경하고자 할때 제이네트워크 2016-08-23 6482
39 [DB] [mysqldump 에러] Got errno 28 on write 발생시 제이네트워크 2016-03-29 8903
38 [DB] phpMyAdmin 4.x 버전에서 필요없는 에러메세지 없애는 방법 제이네트워크 2016-02-01 7884
37 [DB] [mysql]mysqldump 로 백업시 lock table 에러로 백업이 안되는 경우 제이네트워크 2015-09-17 8518
36 [DB] [mysql] Mysql 에러코드 중에 (Got error 134 from storage engine) 나올때 처리법 제이네트워크 2015-06-04 8221
35 [DB] [mysql-5.6.x 설치 후 에러로 실행 안될때 ][Warning] TIMESTAMP with implicit DEFAULT value … 제이네트워크 2015-05-22 13244
34 [DB] [MS-SQL SERVER 2008 로그 파일 사이즈 줄이기] 제이네트워크 2015-05-12 8791
33 [DB] [mysql] 테이블 복사하기 (데이타포함, 비포함) 제이네트워크 2015-04-28 9305
32 [DB] mysql 외부에서 접속 허용하기 (1) 제이네트워크 2015-04-08 10372
31 [DB] [MSSQL]SQL 서버 관리자가 알아야 할 11가지 유용한 팁 제이네트워크 2015-01-21 10451
30 [DB] MySQL DB Table 유실로 인한 장애시 Mysql Binary 로그를 통한 복구 (2) 제이네트워크 2015-01-21 9508
29 [DB] [mysql] 해당 컬럼 값을 1씩 증가시키기 와 mysql 자료형,제약조건,엔진 제이네트워크 2015-01-21 24135
28 [DB] [DB]mysql에서 외부 디비를 커넥션할 경우 접속 속도가 느려질때 제이네트워크 2015-01-16 11435
27 [DB] mysql에서 name server 질의 하지 않게 설정 제이네트워크 2014-01-24 10382
26 [DB] Excel to mysql (import /export) 엑셀데이타를 mysql로 입력하기 제이네트워크 2014-01-18 15528
25 [DB] [mysql]그누보드에서 접속카운트가 올라가지 않을 때 제이네트워크 2013-08-25 12842
24 [DB] [mysql] mysql 에서 캐릭터셋(characterset) 설정 확인 제이네트워크 2013-08-06 11999
23 [DB] [mysql]설치시 에러 - No curses/termcap library found 제이네트워크 2013-01-07 11960
22 [DB] [mysql] DB 에러 메세지 Unable to lock ./ibdata1, error: 11 (1) 제이네트워크 2012-11-18 34002
21 [DB] [MSSQL 쿼리] 컬럼값에서 한글, 영문 구분 쿼리 제이네트워크 2012-09-22 23045
20 [DB] [MYSQL]PHPMYADMIN 3.5버전 설치하기 제이네트워크 2012-08-31 13491
19 [DB] [mysql] mysql에서 (테이블명) is marked as crashed and should be repaired 에러시 관리자 2012-03-23 13249
18 [DB] mysql 설치후 시작에러 발생시 관리자 2011-10-13 14814
17 [DB] mysql 설치시 exec: g++: not found 에러 관리자 2011-10-11 14493
16 [DB] MySQL 설치 에러 : configure: error : No curses/termcap library found 관리자 2011-10-11 12834
15 [DB] mysql 로그를 삭제하여 시작 안될때 관리자 2011-08-16 13411
14 [DB] phpMyAdmin 3.2.5 설치 및 mcrypt 오류 관리자 2011-06-17 15149
 1  2