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

[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 377

번호 제   목   글쓴이 날짜 조회
337 [기타] 리눅스 named(bind) 설정 점검 사이트 제이네트워크 2017-06-11 26262
336 [윈도우서버] Windows 10 자동 업데이트 완전 끄기 제이네트워크 2019-01-11 26431
335 [메일] 아웃룩 메일 수발신할 때 (메일오류코드 2) 제이네트워크 2021-05-28 26448
334 [DB] [Mysql] mysql 엔진 Myisam 을 Innodb로 변경하는 방법 제이네트워크 2016-12-11 26508
333 [DB] mysql 데이타베이스에서 max_connection 늘려주기 관리자 2011-05-17 26849
332 [기타] tar 특정폴더에 압축을 풀어야 할 경우 사용 옵션 제이네트워크 2016-05-10 26851
331 [DB] [mysql] Mysql 에러코드 중에 (Got error 134 from storage engine) 나올때 처리법 제이네트워크 2015-06-04 26969
330 [DB] [mysql]MySQL 5.6 SQL STRICT 모드 변경 방법 제이네트워크 2019-08-14 27134
329 [기타] 크롬브라우저에서 플래시 항상허용후 설정값 저장하는 방법 제이네트워크 2018-12-01 27260
328 [윈도우서버] 윈도우서버 IIS7.5 다운로드 업로드 용량 늘리기 제이네트워크 2018-12-13 27292
327 [기타] [리눅스에러] /bin/sh^M: bad interpreter: No such file or directory 제이네트워크 2017-06-26 27384
326 [DB] phpMyAdmin 4.x 버전에서 필요없는 에러메세지 없애는 방법 제이네트워크 2016-02-01 27420
325 [리눅스서버] mkfs로 포맷이 안되는 경우 (오류 dev/sdb2 is apparently in use by the system; will not mak… 제이네트워크 2020-04-02 27994
324 [리눅스서버] 리눅스 에서 Apche / php / mysql 컴파일 옵션 확인하기 제이네트워크 2015-12-09 28047
323 [리눅스서버] 우분투18.04 vi 에디터에서 글자가 깨져 보일 때 제이네트워크 2019-11-17 28073
322 [메일] 센드메일-아웃룩에러 중 다른메일메세지가 배달중이거나... 제이네트워크 2015-11-03 28149
321 [DB] [mysql]mysqldump 로 백업시 lock table 에러로 백업이 안되는 경우 제이네트워크 2015-09-17 28362
320 [리눅스서버] 우분투18.04 에서 rc.local 파일 사용하기 제이네트워크 2019-11-17 28398
319 [메일] [다음- 스마트워크 MX 레코드 설정방법] 제이네트워크 2018-02-19 28442
318 [DB] mysql 패스워드 분실시 재설정 방법 관리자 2011-05-17 28462
317 [DB] [mysql] 테이블 복사하기 (데이타포함, 비포함) 제이네트워크 2015-04-28 28467
316 [DB] [MS-SQL SERVER 2008 로그 파일 사이즈 줄이기] 제이네트워크 2015-05-12 28736
315 [윈도우서버] [iis 7.5] 한글도메인 입력 ( 값이 예상 범위를 벗어났습니다 ) 에러시 제이네트워크 2016-08-26 28742
314 [DB] [mysqldump 에러] Got errno 28 on write 발생시 제이네트워크 2016-03-29 28753
313 [리눅스서버] [NFS 에러] mount.nfs: Stale NFS file handle 제이네트워크 2017-06-21 28945
312 [DB] mysql 언어셋의 euckr과 utf8 언어셋을 같이 사용하기 관리자 2011-05-17 29205
311 [DB] mysql에서 kill process 하기 관리자 2011-05-16 29211
310 [DB] 서버이전 - mysql 버전 문제로 인한 암호화 방식 해결 방안 관리자 2011-06-17 29223
309 [DB] mysql에서 name server 질의 하지 않게 설정 제이네트워크 2014-01-24 29247
308 [DB] MySQL DB Table 유실로 인한 장애시 Mysql Binary 로그를 통한 복구 (2) 제이네트워크 2015-01-21 29254
307 [윈도우서버] 윈도우 설치 중 새 시스템 파티션을 만들거나 기존 시스템 파티션을 찾을 … 제이네트워크 2019-04-24 29334
306 [쉘스크립트] /bin/sh^M: bad interpreter: No such file or directory 오류 발생 시 제이네트워크 2016-01-22 29407
305 [리눅스서버] cband 설치 제이네트워크 2016-11-30 29408
304 [윈도우서버] iis 버전 버젼 version 확인 방법 제이네트워크 2019-01-14 29431
303 [DB] mysql 컴파일 시 LinuxThreads not found 발생할 경우 관리자 2011-06-17 29464
302 [리눅스서버] [Apache] worker 방식 접속자 튜닝방법 제이네트워크 2016-08-26 29570
301 [리눅스서버] [Centos7.x 에서 vsftp접속문제] 500 OOPS:vsftpd:refusing to run with writable root inside chroo… 제이네트워크 2017-04-19 29595
300 [리눅스서버] [리눅스서버] [리눅스서버]CentOS-6.9 yum 오류날때 제이네트워크 2017-11-08 29595
299 [리눅스서버] INIT: no more processes left in this runlevel 메세지 발생후 부팅에러 제이네트워크 2016-08-01 29597
298 [리눅스서버] [리눅스서버]CentOS- 5.11.yum 오류날때 제이네트워크 2017-07-24 29603
 1  2  3  4  5  6  7  8  9  10