database/sql 6

mysql server has gone away

job scheduler로 동작주기가 15시간인 모듈을 개발하였다. 서비스 올리고 나니 처음 동작할 때 무조건 "ERROR 2006 (HY000): MySQL server has gone away"가 났다. db 서버와 연결이 끊긴 거 같은데 구글링해보니 원인은 mysql 기본설정값과 연관이 있다. 1. max_allowed_packet = 16M insert, update문 등으로 인해 전송패킷 사이즈가 크면 발생한다. 쿼리 내용이 많아서 그런 것이므로 값을 늘려주면 된다. 기본값은 1M로 설정되어 있을 것이다. mysql을 docker로 운영하는 경우 my.cnf 파일에서 값을 변경하여 서버가 재시작되더라도 값이 반영될 수 있도록 하자. 2. wait_timeout = 28800 wait_timeou..

database/sql 2020.08.05

tinyInt(1) 과 tinyInt(2) 차이

mysql schema에서 flag값을 저장하기 위해 tinyint(1) 를 사용하였다. 그러다 tinyint(2) 를 사용한 table을 보게 되어 이 둘의 차이점을 정리하려 한다. 결론부터 말하자면, ZEROFILL 옵션 사용 유무 차이가 있을 뿐 실제 저장공간 및 입력 가능 한계는 동일하다. - ZEROFILL INT의 괄호 옵션 기능은 ZEROFILL로, 숫자 값의 앞쪽에 0을 패딩할 것인지 설정하는 옵션이다. +------------+-------------+ | tinyint(1) | tinyint(2) | +------------+-------------+ | 3 | 03 | | 1 | 01 | | 10 | 10 | +------------+-------------+ 참고: https://s..

database/sql 2020.07.07