요즘 사무실 리눅스 서버에 명령어를 입력 할 때 다음과 같은 명령어가 나왔다. You have new mail in /var/spool/mail/~~~ 여기로도 메일이 오는 건가 싶어서 찾아보니 mail 이라는 명령어를 입력하면 받은 메일을 확인할 수 있다고 했다. 들어가보니 무려 2만개가 넘는 메일이 쌓이고 있었다 ㅎㅎ( 2018년부터 ) "/var/spool/mail/~~~": 22933 messages 22933 new d[메일번호] 로 메일을 지울 수 있다고 해서 메일을 지워줬다. 메일을 나가고 싶을 땐 q를 입력하면 된다 ㅎㅎ
yum update를 하는데 아래와 같은 에러 발생 The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository. 검색해보니 GPG key가 만료되어 해당 에러가 발생한다고 하더군요. 해결 방법은 아래의 명령어로 키 업데이트를 진행하면 된다고 합니다. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 참고 CentOS 7 MYSQL 5.7 설치 GPG key..
리눅스 서버에 레디스 설치 👉 yum install epel-release 명령어 입력 👉 아래 사진과 같은 에러 발생 검색해보니 참고한 블로그에서 CentOS 6 의 yum 지원이 종료 되었다고 하더군요. 해결 방법으로는 아래의 명령어를 사용하면 된다고 합니다. # 32비트인 경우 echo "https://vault.centos.org/6.10/os/i386/" > /var/cache/yum/i386/6/base/mirrorlist.txt echo "http://vault.centos.org/6.10/extras/i386/" > /var/cache/yum/i386/6/extras/mirrorlist.txt echo "http://vault.centos.org/6.10/updates/i386/" > /v..
환경 : 오라클 리눅스 8 상황 : nginx 설치 했으나, 80번으로 접속했을 때 연결 거부함. 해결 : 방화벽 오픈 후, 방화벽 재시작 // 방화벽 오픈 firewall-cmd --zone=public --add-port=80/tcp --permanent // 방화벽 재시작 firewall-cmd --reload 인증서 연결이 안돼서 삽질 하다가ㅠㅠㅠ 원인은 위와 같은 이유 때문이었다. 분명 포트 확인했을 때 443 열려있는 걸 확인해서 왜 안되지.. 했는데 netstat -nap | grep LISTEN 그냥 다시 포트 오픈 후 재시작 해주니 되었다😅😂
ip:3000 으로 접속하면 정상 작동하는데, ip로 접속하면 에러가 나서 한참 찾다가 (nginx 설정 제대로 완료한 상태) nginx log를 검색해보니, (명령어 : sudo tail -f /var/log/nginx/error.log) connect() to 127.0.0.1:3000 failed (13: Permission denied) while connecting to upstream 이런 에러가 발생하고 있었다. 검색해보니, SELinux 의 httpd 설정이 필요하다는 참고 블로그의 말을 듣고 아래의 명령어를 실행해 보았다. sudo setsebool -P httpd_can_network_connect on 명령어 실행 후 다시 접속해보니 정상 작동하는 것을 확인할 수 있었다. ++ 실행 ..
사이드 프로젝트를 Netlify 로 배포하고 운영하다보니, (nuxt 프로젝트) 블로그나 홈페이지 같은 정적 사이트가 아니라서 발생하는 문제가 있었습니다. target을 server로 하고 배포하고 있어서 nuxt의 dynamic directory를 잡지 못하고 404로 반환하는 것이 가장 큰 문제였습니다. 이로인해 가장 중요한 홍보 수단이었던 카카오톡에서 og 태그들을 인식하지 못해 사용자들이 불편함을 겪을 것 같아 서버 이전을 고민했고, 런칭 초기인 지금 빨리 이전하는 게 맞겠다는 판단이 들었습니다. 오라클 클라우드에 인스턴스를 생성하여 NGINX로 웹서버를 구축하고 Docker로 프로젝트를 띄운 과정을 기록으로 남겨보았습니다. (+https 연결 과정도 남겨두었습니다.) 계정 생성 https://c..
UPDATE 테이블_명 SET param1 = #{param1} , param2 = #{param2} , param3 = #{param3} , WHERE idx = #{idx} 이런 구조로 된 SQL문이 있었다. 당연히 마지막 ',' 때문에 에러가 발생한다. WHERE이 저런 상황이라면 1=1을 추가해주면 되던데 SET은 1=1을 할 수 없었다. ++ 1=1도 찾아보니 성능상 좋지 않다고 한다. 이때 SET에 trim이라는 것을 사용해 보았는데, 아래와 같이 사용하면 된다. UPDATE 테이블_명 param1 = #{param1}, param=2 = #{param2}, param=3 = #{param3}, trim의 옵션 prefix와 suffixOverrides는 이러한 기능이라고 한다. prefix ..
주로 #{} 이렇게 되어있는데 ${} 이렇게 되어있는 부분도 있어서 검색해보았다. #{}와 ${}의 가장 큰 차이는 '', String이냐 아니냐의 차이인 것 같다. #{} String 형태로 주입되어 자동적으로 ''가 붙는 형태가 된다. WHERE user_idx = #{user_idx} 예를 들면 위의 경우 출력되는 쿼리문은 WHERE user_idx = '2'의 형태가 된다. 쿼리 주입을 예방할 수 있어서 보안 측면에서 유리하다. ${} String 형태가 아닌 주입되는 형태 그대로 출력된다. 쿼리 주입을 예방할 수 없어서 보안 측면에서 불리하다. 테이블 명, 칼럼 명을 전달할 때 사용한다. #{}의 경우 String 형태이기 때문에 ''가 붙어서 사용할 수 없다. 출처 https://logical..