jdbc를 사용할 때, connection을 close 해 주지 않으면 어떤 일이 벌어질까요? 파일을 열어놓고 close를 안 하면 fd가 낭비되는 것처럼 connection이 계속 쌓이다가, connection이 고갈될 겁니다. jdbc mysql과 연동했을 때, connection을 해제를 해 주지 않았을 때, mysql server에서는 어떤 일이 일어나는지 변수값과 status를 보면서 알아보겠습니다. 먼저, show variables like '%con%'을 쳐 보겠습니다. 이것은 variable name에 con이 들어가는 것을 모두 찾습니다. 이 중에 max_connections가 보이는데요. 이 값은 문서에 따르면, 허용하는 클라이언트 연결 수의 최댓값을 의미합니다. 그리고 이 문서를 보면..
코딩/Sql 검색 결과
안녕하세요. 이번 시간에는 postgresql serial permission 오류가 떴을 때, 어떻게 해결해야 하는지 알아보겠습니다. 저는 서버에 psql을 설치했고, 로컬에 dbeaver로 접속할 수 있는 환경을 구축해 놓은 상태입니다. 저는 도서관 api 프로젝트에서 책을 빌리고 반납하고, 어떤 책을 빌렸는지에 대한 api를 추가하는 작업을 하고 test 하는 중이였습니다. 이 중에서 POST /borrow는 책을 빌리는 api입니다. bookId와 userId를 넣으면, 2번 유저가 id가 2인 책을 빌리게 됩니다. 요청을 보내 보겠습니다. 그랬더니 500이 떨궈지는데요. 서버 내에서 문제가 발생했음을 의미합니다. 로그를 보니까 permission denied가 되어 있는데요. 권한 때문에 무엇인..
mysql에는 auto increment가 있었습니다. postgresql에는 없을까요? 문서의 8.1.4를 보시면, serial 시리즈가 비슷한 역할을 한다고 되어 있습니다. 저는 도서관 api를 구현하는 토이 프로젝트를 하고 있어요. 이 중에, book 관련한 api는 얼추 만들었으니, 책을 빌리고 반납하는 api를 만들겠습니다. 그러려면, user 테이블하고, borrow 테이블이 필요한데요. 아직, login 기능은 만들 생각이 없으니, 그냥 borrow 테이블만 만들도록 하겠습니다. 책을 빌리는데, 누가 빌리나요? 유저가 빌릴 겁니다. 즉, 책 아이디와, 유저 아이디가 필요합니다. 그리고 언제 빌렸는지 알기 위해서, 빌린 시각, borrow_time도 저장하겠습니다. 그런데, 빌린다. 요청에 가..
저번 시간에 유저를 생성하고, 비밀번호를 바꾸고, encryption 알고리즘을 md5에서 scram-sha-256으로 바꾸는 것까지 하였습니다. 이번 시간에는 유저 인증 정보를 보는 방법을 알아 봅시다. 먼저 인증 정보는 pg_authid에 있습니다. 이 문서에 대략적인 설명이 나와 있는데요. rolname은 gh와 같은 유저 이름이 됩니다. 그리고, rolpassword는 암호화된 비밀번호를 의미합니다. SCRAM-SHA-256은 너무 기니까, 대충 앞에서 40자만 뽑아서 가져왔습니다. 그러기 위해서, left 함수를 썼습니다. 이제 인증 방식과 암호화 방식을 md5로 바꿔 봅시다. pg_hba.conf 파일입니다. 이것은 postgresql.conf 파일입니다. 이렇게 설정하고, postgresql..
이번 시간에는 postgresql에서 어떻게 인증 방식을 md5에서 scram-sha-256으로 바꾸는지 보도록 하겠습니다. 12버전에서 테스트 하였습니다. 먼저, 유저 gh를 생성하고, LOGIN이 가능하게 하겠습니다. 그럴려면, gh라는 role을 생성하고 LOGIN 권한을 주면 됩니다. 다음에, password를 설정하려면, alter role ~ with password ~ 요렇게 입력하시면 됩니다. 다음에 du를 입력해 보시면, Role name이 쭉 뜨는 것을 알 수 있습니다. 여기서, postgres는 Superuser이면서 role도 create 할 수 있고, DB도 만들 수 있고 그런 걸로 보아서는 전지 전능한 존재인 듯 합니다. 털리면 안 될 듯 합니다? cho로 로그인을 한 상태에서 ..
최근댓글