TIL/Database(3)
-
[MySQL] DBeaver 연결 시 Public Key Retrieval is not allowed 문제
갑자기 DB 연결이 안된다.이번에 문제가 발생해서 DB를 새로 설치하였다. 그런데 갑자기 다음과 같은 에러가 발생했다.무슨 일인가 싶어서 찾아봤더니 MySQL 8.0 이상의 버전에서 세팅을 다르게 해줘야 한다고 한다. 바로 따라해 보았다.해결해보자.연결이 불가능해진 DB를 오른쪽 클릭한 후 Edit Connection을 누른다.그 다음 사진에 보이는 Driver properties 탭을 선택한 후 두 개의 설정을 변경해준다. 그 다음 왼쪽 아래의 Test Connection 버튼을 클릭했을 때 연결이 잘 되었다면 성공!
2024.06.03 -
[MySQL] INT(11)과 DATETIME(6)의 비밀
11자리 숫자까지? django orm을 사용하여 Table을 생성하고(migration) 관리하기만 하다가 문득 저 괄호 안의 숫자의 의미가 궁금해졌다. bigint(20)같은 경우에 20자리 숫자까지 표현하는데 20자리가 넘어가면 에러가 나거나 문제가 생기는 것이 아니다. 해당 필드에 ZeroFill(ZF) 옵션이 체크가 되어있을 경우 20자리까지 0을 채워 넣는다는 얘기이다. 예를 들면, 위 사진에서 font_size 필드가 smallint(5)인데, ZF가 true일 경우, 12라는 숫자를 넣게되면 00012라는 값으로 들어온다. 즉, ZF옵션이 체크되어 있을 경우에만 유의미하고 그렇지 않은 경우에는 상관없다. 그러나 각 type에 맞게 범위가 들어와야한다. smallint의 경우 -32768 부..
2023.04.11 -
[MySQL] Soft delete와 unique constraint
Soft delete인데 unique가 걸려있다... 제목을 어떻게 지어야할지 몰라서 저렇게 지었지만 회사 API 작성 중 회원가입 파트에서 막힌 부분이 있었다. 바로 탈퇴한 아이디인데 그 아이디로 다시 회원가입을 할 경우, 로직상 DB에서 레코드(row)를 삭제하는 것이 아닌, soft delete(논리 삭제)를 할 경우 unique해야 할 아이디가 이미 테이블에 존재한다며 에러를 내뿜었다. 이 부분에 대해 고민을 한 것이 2가지였다. unique constraint를 없애고 비지니스 로직으로 논리 삭제된 아이디를 제외하고 중복된 아이디인지 검사 nickname과 deleted_at 컬럼 두개를 다중 컬럼 unique를 건다. unique 삭제? unique 조건을 삭제한다면 문제가 분명히 생길 것이다..
2023.01.12