개발 - WEB, WAS, DB 13

Mysql 윈도우에서 서버 실행 방법 및 오류 해결

Mysql 을 윈도우에 설치하면 기본값으로 서비스에 등록되어 부팅시 자동으로 실행 됩니다. 하지만 서비스에 등록시키지 않고 수동으로 서버 실행 시키는 방법에 대해서 설명 합니다. Mysql 서버 기동 명령어 관리자권한으로 실행 해야 합니다. 명령어 주의점은 my.ini 위치를 지정해 줘야 합니다. C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" 오류1 mysqld 실행시 my.ini 위치를 지정해 주지 않으면, data 경로를 못 찾기 때문에 에러가 발생합니다. 2023-01-06T23:42:36.776362Z 0 [System] [MY-010116]..

Mysql 대댓글 WITH RECURSIVE 계층쿼리

게시판이나 뉴스 등 에서 사용되는 댓글 기능을 구현하는 방법입니다. Mysql에서는 with recursive 라는 SQL을 사용합니다. ​ 댓글 테이블 구조 # 게시판 댓글 CREATE TABLE board_comment ( num INT UNSIGNED AUTO_INCREMENT NOT NULL, board_num INT UNSIGNED NOT NULL, parent_num INT UNSIGNED NULL, content VARCHAR(16000) NOT NULL, create_date DATETIME NOT NULL, PRIMARY KEY (num), FOREIGN KEY (board_num) REFERENCES board (num) ); SELECT num, board_num, parent_num..

win-acme renewal 404 오류 해결

let's encrypt 무료 인증서를 사용중인데 3개월마다 갱신해줘야 합니다. 3개월이 되어서 갱신하려고 했지만 알 수 없는 404 오류가 나왔습니다. ​ 환경 tomcat으로 4개의 도메인(서비스)를 운영중입니다. 그리고 4개의 도메인을 1개의 인증서로 발급 받았습니다. ​ 오류 Run renewals 를 실행하면 404 오류가 납니다. ​ wireshark로도 확인해 보았는데 무료인증서 발급하는 서버에서 챌린지 파일 URL을 호출을 하지만 404 오류가 나옵니다. ​ 각 서비스의 webapps/.well-known/acme-challenge/ 경로에 가면 순간적으로 첼린지 파일이 생성 되었다가 사라지는 것을 보면 정상인데 왜 안되는지 모르겠습니다. ​ 해결 과정 순간적으로 파일이 생성되고 사라지다 ..

Apache - AH00547: Could not resolve host name 오류

apache에서 vhost설정하고 기동시 AH00547 에러에 관한 해결방법입니다. ​ 오류 메세지 (OS 11001)알려진 호스트가 없습니다. : AH00547: Could not resolve host name xxx.xxxxxxxx.com -- ignoring! ​ 현상 Apache는 정상적으로 기동되고, 오류나는 도메인으로 접속하면 vhost의 다른 도메인으로 연결됩니다. ​ 원인 Apache가 기동시 vhost에 등록된 도메인들의 유효성을 확인하는데, 도메인이 없다라는 오류입니다. vhost의 특정 도메인이 DNS오류가 나면 자동으로 vhost의 다른 도메인으로 연결 시켜 버립니다. ​ 해결방법 - 해당 도메인의 DNS 등록 확인 - 서버의 DNS 캐시 초기화 >ipconfig /flushdns..

Apache 1개 - Tomcat 여러개 mod_proxy 설정 방법

1개 서버에서 여러개의 서비스를 하고 싶을 때, Apache1개 - Tomcat 여러개를 설정하는 mod_proxy 방법 입니다. ​ 참고로 Apache와 Tomcat을 연동하는 방법은 3가지가 있는데, 여기서는 mod_proxy 방법에 대해서 설명합니다. 1. AJP 2. mod_proxy 3. mod_proxy_ajp ​ AJP 방법은 아래 링크에서 설명 하였습니다. https://blog.naver.com/dalili82/222610287704 ​ 설계 제가 서비스 할 것은 4개 입니다. 각각 도메인이 구분됩니다. Apache에서 Tomcat으로 포워딩 되는데, Tomcat 마다 서비스 포트를 다르게 설정 합니다. ​ [Apache] conf/httpd.conf mod_proxy 모듈을 사용하고, ..

Apache 1개 - Tomcat 여러개 AJP 설정 방법

1개 서버에서 여러개의 서비스를 하고 싶을 때, Apache1개 - Tomcat 여러개를 설정하는 AJP 방법 입니다. ​ 참고로 Apache와 Tomcat을 연동하는 방법은 3가지가 있는데, 여기서는 AJP 방법에 대해서 설명합니다. 1. AJP 2. mod_proxy 3. mod_proxy_ajp ​ mod_proxy 방법은 아래 링크에서 설명 하였습니다. https://blog.naver.com/dalili82/222610988083 설계 제가 서비스 할 것은 4개 입니다. 각각 도메인이 구분됩니다. Apache에서 Tomcat은 AJP 포트로 통신을 하는데, Tomcat 마다 다르게 설정 합니다. [Apache] conf/httpd.conf 톰캣 연동을 사용하고, 관련된 설정 파일들의 경로를 명시..

리눅스에서 일반계정으로 80포트 사용하기

리눅스에서 일반계정은 well known port 1024 이하는 사용이 불가능 합니다. 하지만 할 수 있는 방법이 있습니다. ​ 1. setcap 명령어 가장 추천하는 방법으로, 가장 간편하고 직관적입니다. 실행 명령어에 setuid 권한 주듯이 1024 미만 포트의 사용권한을 주는 명령어 입니다. 예를 들어 톰캣은 자바로 실행되기에 자바 파일에 권한을 부여하면 됩니다. ​ 설정 setcap 'cap_net_bind_service=+ep' /usr/lib/jvm/java-1.8.0-openjdk/bin/java ​ 해제 setcap -r /usr/lib/jvm/java-1.8.0-openjdk/bin/java ​ 확인 getcap /usr/lib/jvm/java-1.8.0-openjdk/bin/java..

VPN IP 차단방법(톰캣 IP 접근제한)

사이트 운영을 하는데 VPN으로 들어와서 범죄행위를 하는 사람이 발생 했습니다. 하지만 VPN 접근을 막을 수 있는 방법이 딱히 없어서, 특단의 조치로 해외IP는 모두 접근 차단하고, 국내IP만 접근 허용하도록 하였습니다. 화이트리스트 방식이고, 만약 블랙리스트 방식으로 운영하기 위해서는 방대한DB가 필요하고 운영에서 엄청난 노가다가 필요할 것 같습니다. 국내 IP 대역 한국인터넷정보센터에서 국내에서 사용하는 IP를 확인할 수 있습니다. https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/statboard/IPAS/ovrse/natal/IPaddrBandCurrent.jsp?nationCode1=KR 한국인터넷정보센터(KRNIC) 도메인 소개, 등록 ..

tomcat 환경에서 mysql JDBC 연결시 - Communications link failure

tomcat 환경에서 mysql JDBC 연결시 아래 에러가 나는 경우 해결 방법 ​ 에러 내용 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. ​ 원인 tomcat 보안설정에서 차단 되어 있음 ​ 해결방법 catalina.policy 설정 파일에 아래 권한 추가 permission java.net.SocketPermission "localhost:3306", "connect"; ..