Caused by: cohttp://m.mysql.cj.exceptions.CJCommunicationsException: Communications link failure 2025-02-10T05:52:50.820359528Z
2025-02-10T05:52:50.820360724Z The last packet sent successfully to the server was 0 milliseconds ago.
The driver has not received any packets from the server. 2025-02-10T05:52:50.820362090Z at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
팀 프로젝트 진행중,
도커 컴포즈 파일을 통해 EKS 셋팅을 하는데 내 pc에서만 Logstash와 MySQL연결에 문제가 생겼다.
DBeaver로 MySQL 연결 상태를 확인해봤으나 문제 없었음.
혹시 환경의 문제가 아닐까 싶어서 팀원들에게 MySQL을 어떻게 사용하고 있냐고 물어봤는데,
다들 로컬환경에서 사용중이었음 반면에 나는 Docker로 돌리고 있었음.
따라서, 문제는 MySQL이 실행되는 환경차이에 있다는 것을 알게 되었다!
logstash.conf의 input 섹션에서
mysql 경로를 수정했다
기존 localhost로 되어 있던 부분을
host.docker.internal로 변경했다.
도커 컨테이너의 localhost와 로컬 환경의 localhost의 정의가 다르기 때문에 발생한 문제였다!
input {
jdbc {
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-j-9.2.0.jar"
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/test_db"
jdbc_user => "root"
input {
jdbc {
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-j-9.2.0.jar"
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://host.docker.internal:3306/test_db"
jdbc_user => "root"