채택완료
mysql 5.7 에서 그누보드5 사용시 날짜형식에 기본값에 대해 질문드려요
PHP7
MYSQL 5.7
아파치 2.4
조합으로 서버가 세팅되어 있습니다.
설치된 지난주에 올라온 그누보드는 5.2 최신버전이구요..
아파치 5.4쓸때는 없었던 에러메세지인데
5.7 로 바뀌고 나서는 에러메세지가 생깁니다.
회원정보 테이블 g5_member 에서 sql로 alter 로 칼럼 추가하려고 하면
질의 오류:
#1067 - Invalid default value for 'mb_today_login'
같은 에러메세지가 뜹니다.
날짜형식이 0000-00-00 같이 지정되어 있는 칼럼의 경우에
위의 메세지가 뜨는거 같은데...
뭐가 문제인지 모르겠네요..이런 경우 어떻게 처리하면 좋을지 몰라서
질문 글 올립니다.
답변 4개 / 댓글 9개
채택된 답변
+20 포인트
2016-08-19 (금) 13:38:56
5.7.13에서 똑같이 g5_member 에 alter table add로 컬럼추가해봤는데 잘 되네요.
insert로 더미데이터 넣어봤는데 mb_today_login에 디폴트인 0000-00-00 00:00:00 잘 들어가 있구요.
테스트는 윈도 데스크탑에서 하긴 했습니다만 아주 다르진 않을듯 한데..
alter table로 컬럼추가 하는데 mb_today_login의 디폴트값이 문제가 된다는게 좀 이상하네요.
아직 5.7 서버에서 테스트가 가능하다면 혹시 모르니 처리하려는 sql을 출력해보세요. 왠지 mb_today_login를 변경하려는게 있었을수도 있겠네요.
답변에 대한 댓글 4개
2016-08-19 (금) 13:54:58
2016-08-20 (토) 02:46:44
신경써주셔서 감사합니다.
저도 이번에 하는거 마쳐놓고 좀 파볼 생각입니다
당장 발에 불부터 꺼야해서 ㅎㅎ;;
저도 이번에 하는거 마쳐놓고 좀 파볼 생각입니다
당장 발에 불부터 꺼야해서 ㅎㅎ;;
2016-08-20 (토) 12:22:19
일단 로컬에 다시 셋팅해서 설치까지 진행해봤습니다. (wamp3.0.4: apache2.4, php5.6, mysql5.7)
순정그누보드가 아니라 제 커스텀버전 체크할겸 했던거라 순정과 얼마나 차이가 있을진 모르겠습니다만 설치도 잘 되고 phpmyadmin으로 mb_today_login 변경도 해봤습니다만 별 문제는 없었던걸로 보아 역시나 mysql5.7 버전차이보다는 환경쪽의 차이인 모양입니다.
메뉴얼에서는 mysql 5.5에서도 datetime 값에 범위제한이 있는걸 확인했습니다.
ALLOW_INVALID_DATES 문제인줄 알았는데 제 환경을 보니 NO_ZERO_IN_DATE,NO_ZERO_DATE 차이일 수도 있겠습니다.
http://dev.mysql.com/doc/refman/5.5/en/sql-mode.html#sqlmode_no_zero_date
아래는 제 sql mode 셋팅값입니다.
SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
순정그누보드가 아니라 제 커스텀버전 체크할겸 했던거라 순정과 얼마나 차이가 있을진 모르겠습니다만 설치도 잘 되고 phpmyadmin으로 mb_today_login 변경도 해봤습니다만 별 문제는 없었던걸로 보아 역시나 mysql5.7 버전차이보다는 환경쪽의 차이인 모양입니다.
메뉴얼에서는 mysql 5.5에서도 datetime 값에 범위제한이 있는걸 확인했습니다.
ALLOW_INVALID_DATES 문제인줄 알았는데 제 환경을 보니 NO_ZERO_IN_DATE,NO_ZERO_DATE 차이일 수도 있겠습니다.
http://dev.mysql.com/doc/refman/5.5/en/sql-mode.html#sqlmode_no_zero_date
아래는 제 sql mode 셋팅값입니다.
SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
Raizond
2018-01-03 (수) 21:32:22
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_IN_DATE',''));
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_DATE',''));
답변에 대한 댓글 1개
2017-05-27 (토) 11:12:49
해결 방법 알려드립니다.
SQL_MODE에서 "NO_ZERO_IN_DATE,NO_ZERO_DATE" 값을 제거하시면 됩니다.
(5.7부터는 default로 들어가있어요)
답변에 대한 댓글 1개
WebMONSTER
2016-08-16 (화) 21:44:38
넣을때 sql 형식값을 확인 하시거나. 아니면 mysql5.7 에 맞게끔 변경하셔야 할겁니다
답변에 대한 댓글 3개
2016-08-16 (화) 23:49:53
phpmyadmin 에서 칼럼 타입 변경하려고 해도
질의 오류:
#1067 - Invalid default value for 'mb_today_login'
이렇게 에러 뜨고 진행이 안되네요..
질의 오류:
#1067 - Invalid default value for 'mb_today_login'
이렇게 에러 뜨고 진행이 안되네요..
2016-08-17 (수) 18:34:55
GKTEAM //
일단 설치 후에는 에러 떠서 변경자체가 불가능 합니다.
콘솔로 mysql 접속해서 명령어 내려도 동일하게 에러가 뜨고 진행이 안되더군요.
그렇다면 설치전에 인스톨러를 손질해야 한다는 뜻인데..
물론 개인적으로 수정해서 사용이야 할 수는 있겠습니다만...
그누보드는 mysql 신버전지원안합니다~할거 아니라면
개발팀 쪽에서 나서야 할 문제 같습니다.
저는 그냥 mysql 5.7 포기하고 구버전 5.5 깔려있는 서버로 돌아가기로 했습니다. =ㅅ=;
이런걸로 용쓰기 싫네요 ;;;
일단 설치 후에는 에러 떠서 변경자체가 불가능 합니다.
콘솔로 mysql 접속해서 명령어 내려도 동일하게 에러가 뜨고 진행이 안되더군요.
그렇다면 설치전에 인스톨러를 손질해야 한다는 뜻인데..
물론 개인적으로 수정해서 사용이야 할 수는 있겠습니다만...
그누보드는 mysql 신버전지원안합니다~할거 아니라면
개발팀 쪽에서 나서야 할 문제 같습니다.
저는 그냥 mysql 5.7 포기하고 구버전 5.5 깔려있는 서버로 돌아가기로 했습니다. =ㅅ=;
이런걸로 용쓰기 싫네요 ;;;
답변을 작성하려면 로그인이 필요합니다.
http://stackoverflow.com/questions/23312144/error-error-1067-invalid-default-value-for-on-update-current-timestamp#answer-23336044
http://dev.mysql.com/doc/refman/5.5/en/sql-mode.html#sqlmode_allow_invalid_dates