#1364 - Field '칼럼이름' doesn't have a default value
에러가 날때 있습니다.
mysql 5.6.X대에서 STRICT 모드가 활성화 되어 있는듯 합니다.
이게 활성화 되어 있으면
테이블내 칼럼들중에 기본값이 default '' 이거나 default '0'
이면 모두
$sql ="`칼럼이름` = '', ";
이런식으로 모든 칼럼에 추가해야 합니다.
이리 하려면 그누보드5 순정소스를 많이 수정해야 합니다.
피곤하죠.
쉽게 해결 방법이 있습니다.
my.cnf 파일안에
my.cnf 파일안에
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
이걸
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql_mode=NO_ENGINE_SUBSTITUTION
이렇게 바꿔야 하네요.
참고로 my.cnf 파일 2개가 있는데 2개 다 수정해 줘야 합니다.
저의 경우 /etc/my.cnf 파일만 수정하니 안되더군요.
검색하여 파일 2개 다 수정해 줘야 한다는 글 보고 따라하니 해결 되네요.
#1364 - Field 'wr_comment_reply' doesn't have a default value 또는
#1364 - Field '다른 칼럼 이름' doesn't have a default value
에러 나오면 위처럼 해 주세요.
댓글 5개
C 개발자가 PHP문법을 보면 아니 이런것도 돼? 완전 너프한 언어네?! 라고 하는것처럼
오라클 사용자가 MySQL 보면 아니 이런 쿼리문도 에러안되고 실행돼?! 라고 한다죠. ㅎㅎ
MySQL도 그동안 명시적으로 선언되지 않은것들을 임의로 넣어주는 것들이 많은데, 임의로 무언가를 하도록 한다. 라는게 언제나 문제가 생길수밖에 없는 것이라, PHP도 그렇고 MySQL도 그렇도 점점 문법이 강화되고 있죠.
당분간은 MySQL설정을 수정해서 쓰더라도 점차적으론 STRICT 모드를 쓰는것이 좋을 듯 합니다.
<?= ?> 를 더이상 사용하지 않고 <?php echo ?> 가 기본으로 되어가고 있는것처럼 말이죠. ㅎ
오라클 사용자가 MySQL 보면 아니 이런 쿼리문도 에러안되고 실행돼?! 라고 한다죠. ㅎㅎ
MySQL도 그동안 명시적으로 선언되지 않은것들을 임의로 넣어주는 것들이 많은데, 임의로 무언가를 하도록 한다. 라는게 언제나 문제가 생길수밖에 없는 것이라, PHP도 그렇고 MySQL도 그렇도 점점 문법이 강화되고 있죠.
당분간은 MySQL설정을 수정해서 쓰더라도 점차적으론 STRICT 모드를 쓰는것이 좋을 듯 합니다.
<?= ?> 를 더이상 사용하지 않고 <?php echo ?> 가 기본으로 되어가고 있는것처럼 말이죠. ㅎ
저도 서버 이전하면서 같은 문제가 발생해서 서칭해서 해결했네요.
Server version: 10.3.38-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04
root@ubuntu:/# vi /etc/mysql/mariadb.conf.d
### mysqld 모드 부분에 내용을 추가
[mysqld]
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
root@ubuntu:/# systemctl restart mysql
** test 해보기 ***
MariaDB [(none)]> SELECT @@global.sql_mode;
+--------------------------------------------+
| @@global.sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.000 sec)
Server version: 10.3.38-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04
root@ubuntu:/# vi /etc/mysql/mariadb.conf.d
### mysqld 모드 부분에 내용을 추가
[mysqld]
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
root@ubuntu:/# systemctl restart mysql
** test 해보기 ***
MariaDB [(none)]> SELECT @@global.sql_mode;
+--------------------------------------------+
| @@global.sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.000 sec)
게시글 목록
| 번호 | 제목 |
|---|---|
| 24318 | |
| 24317 | |
| 24315 | |
| 24309 | |
| 24294 | |
| 24293 | |
| 24277 | |
| 24262 | |
| 24260 | |
| 24253 | |
| 24251 | |
| 24236 | |
| 24233 | |
| 24228 | |
| 24226 | |
| 24221 | |
| 24214 | |
| 24203 | |
| 24201 | |
| 24199 | |
| 24196 | |
| 24195 | |
| 24194 | |
| 24192 | |
| 24191 | |
| 24187 | |
| 24185 | |
| 24183 | |
| 24172 | |
| 24168 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기