MySQL

· DataBase
에러 발생 예전에 회사에서 원격으로 근무하고 있던 동료 개발자로부터 에러가 발생했다고 공유 받았다. DB는 MySQL이며 아래와 같은 에러 메세지가 떴다고 한다. ERROR 1129(00000): Host '*' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts' 에러 원인 검색해보니 바로 원인을 알 수 있었다. 원격 서버에서 MySQL 서버로 연결한 뒤 close를 하면 MySQL은 비정상적인 접속으로 판단해 해당 IP를 블락 처리한다고 한다. 이 때 MySQL에서 이와 같은 비정상적인 접속 요청 수를 카운팅해서 global.max_connect_errors에 지정된 값을 넘기면 자동 블락 처리가 되어 생..
· Java
개발을 하며 MySQL의 Timestamp가 이상하게 조회되는 상황에 맞닥뜨렸다. 발생한 이슈와 원인, 해결한 방법 순서대로 기록해둔다. 이슈 발생 간단하게 정리하면 데이터 조회 시 특정 일자의 하루 동안 저장된 데이터를 조회해야 했고, 이를 위해서 특정 일자의 시작 시간(yyyy-MM-dd 00:00:00)과 끝 시간(yyyy-MM-dd 23:59:59)을 Timestamp 타입으로 만들었다. 예를 들어 일자별 회원가입 현황을 데이터테이블로 산출하려고 한다. 조회 시에는 JPQL을 사용했고, 테스트 용으로 아주 간단하게만 구현해두었다. /** * 일자별 회원가입 현황 * @param * @return */ public List getDailySignUp(Integer start, Integer leng..
· DataBase
MySQL에서 쿼리를 사용하다 보면 형변환이 필요할 때가 있다. 데이터 타입이 CHAR인 컬럼을 조회할 때 숫자 타입으로 바꿔서 조회하는 것이 필요한 경우가 있다. 특히 숫자로 이뤄진 컬럼인 줄 알고 정렬을 했는데 1, 11 111, 2, 23, 234, 33, ... 이렇게 정렬되는 경우가 있다. 아마 컬럼의 타입이 INT가 아니라 VARCHAR이기 때문일 것이다. 이때 MySQL에서는 CAST 함수 CONVERT 함수 둘 중 하나를 사용해 데이터 형변환을 할 수 있다. 변환 가능한 데이터 형식은 다음과 같다. BINARY[(N)] CHAR[(N)] [charset_info] DATE DATETIME DECIMAL[(M[,D])] JSON NCHAR[(N)] SIGNED [INTEGER] TIME UN..
· DataBase
최근 MySQL DB에서 data source rejected establishment of connection, message from server: "too many connections" 이라는 에러가 발생한 적 있다. 잘 되다가 갑자기 이런 에러가 떠서(코드나 DB 설정 등을 수정한 적도 없고, 개발자 여러 명이 어플리케이션 실행을 시킨 상황도 아닌 것으로 파악되는데,,) 당황스러웠지만 우선 에러를 직독직해 하면 알 수 있듯 Connection 문제라고 하니 연결된 Connection 수 먼저 체크했다. 정리해보자면 이 에러는 DB와 연결된 client의 수, 다른 말로는 DB와 연결된 접속 수가 너무 많아서 발생한 에러인데, 또 다시 같은 에러가 발생할 수 있으므로 DB에 최대한으로 접속 가능한..
토발자_Hflug
'MySQL' 태그의 글 목록