Server

· Server/sql
mysql에서 데이터를 조회하는 도중 갑자기 디비가 멈췄다. 띠용.. @-@ db에서 deadlock 를 발견함. 추정 원인으로는 데이터를 조회하던 도중 조회하는 테이블의 컬럼에 제약조건을 걸어서 그런 것 같다. 왜냐하면 Update ~ 를 친 후에 멈췄기 때문... 🥲🥲 일단 급하게 해결하려면.. show processlist 이렇게 조회된 데이터 가운데 time이 많이 걸린 행이 있을 것이다. 그 행의 id를 찾아 죽이자. kill {id} 실사용중에도 데드락이 발생할 수 있으니.. 왜 데드락이 발생했는지,데드락 발생시 알아서 process를 kill하는 방법을 알아봐야 할 듯 하다..
· Server
대충 누군가 셋팅해놨던 아파치와 Nginx만을 써보다가 이제 Nginx Configuration에 대해 좀더 알아봐야겠다 생각했다. 언제까지나 남이 셋팅해준 서버에 기대며 살 순 없으니까... 그것이..개발자니까..(우웁..) 대충 웹서버하면 원픽으로 떠오르던 것이 아파치 였는데 어느 순간부터 Nginx 가 급부상하기 시작했을까. 무슨 차이가 있길래 Nginx라는 녀석이 아파치를 앞질러서 급부상하기 시작했나? 간단하게 말하자면 Nginx는 아파치보다 큰 트래픽에 훨씬 유용하다고 볼 수 있다. 예를 들어 1000명의 사용자가 동시에 서버에 http 요청을 보내는 경우를 생각해보자. 아파치의 경우 1000명에 맞춰서 1000개의 멀티프로세스 쓰레드를 생성해야 하는 반면, Nginx는 하나의 프로세스로 100..
· Server
sudo systemctl nginx status 를 눌렀을 때 괜히 이런 찝찝한 화면이 나온다면? 처음엔 nginx.conf 파일의 pid경로가 /run/nginx.pid; 가 아닌 /var/run/nginx.pid로 바꿔줘야 하나? 했는데 그건 아니고... sudo vi /usr/lib/systemd/nginx.service 파일을 편집해서 ExecStartPost=/bin/sleep 1 를 추가해주면 끝난다. 그리고 다시 systemctl daemon-reload systemctl restart nginx 를 통해 nginx를 재부팅해주면 끝. 심각한 에러는 아닌데 그냥 찝찝하니까 없애준다. https://www.webconn.tech/kb/failed-to-parse-pid-from-file-ru..
· Server/linux
리눅스에서 파이썬 버전 변경이 필요한 순간이 찾아온다.. 가령 높은 버전을 요구하는 pip를 설치 하려고 할 때 말이요. 개발 환경: Ubuntu 18.04.5 LTS aws의 ec2 환경인데 기본적으로 파이썬 버전이 3.6.9인듯 했다. sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa sudo apt install python3.7 python3.7 -V // Python 3.7.9 라고 나올 것이다 이 과정에서 엄청난 오류가 있었고…그냥 에러창에서 하라는거 다 따라쳤다. 확인용 ls -al /usr/bin/python* 3.7버전이 잘 깔려있는 것을 확인할 수 있다...
· Server/linux
퍼미션 종류 (권한기호) 읽기(r): 읽기 권한 (2² = 4) 쓰기(w): 쓰기 권한 (2¹ = 2) 실행(x): 실행 권한 (2⁰ = 1) 예시 만약 소유자에게 읽기 권한만 주고 쓰기/실행권한을 주지 않는다면? 4 만약 소유자에게 읽기/쓰기 권한만 주고 실행권한을 주지 않는다면? 6 소유자(u)/그룹(g)/기타(o) rwxrwxrwx = 777 -> 소유자, 그룹, 기타에게 모두 읽기/쓰기/실행 권한이 부여됨 r-xr-xr-x = 555 -> 소유자, 그룹, 기타 모두 읽기/실행 권한만 부여됨 r-------- = 400 -> 소유자에게 읽기 권한, 나머지는 권한 없음 rwx------ = 700 -> 소유자에게만 읽기/쓰기/실행 권한이 부여됨
· Server/sql
DDL_CONSTRAINT_FOREIGN KEY DDL에서 테이블을 만들 때 제약조건중 하나로 FOREIGN KEY가 있다. 이는 다른 테이블의 값을 참조(REFERENCE)하여 현재 컬럼의 값을 추가하는 제약조건이다. 다시 말해 다른 테이블의 기본키나 고유의 값(unique)을 통해 참조하여 현재 테이블로 가져오는 값. 이러한 외래의 제약조건을 활용하여 다른 테이블과의 관계를 만들어낼 수 있다. (RDBMS) 먼저 TIER 테이블을 만들어줘보자. CREATE TABLE TIER( GRADE_NO NUMBER PRIMARY KEY, GRADE_NAME VARCHAR2(30) NOT NULL ); INSERT INTO TIER VALUES(1, 'bronze'); INSERT INTO TIER VALUES..
sovelop
'Server' 카테고리의 글 목록