Vì vậy, bạn có một
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Lỗi liên kết truyền thông
java.net.ConnectException:Kết nối bị từ chối
Tôi đang trích dẫn từ câu trả lời này trong đó cũng chứa hướng dẫn từng bước về MySQL + JDBC:
Nếu bạn nhận được
SQLException: Connection refused
hoặcConnection timed out
hoặc một MySQL cụ thểCommunicationsException: Communications link failure
, thì điều đó có nghĩa là DB hoàn toàn không thể truy cập được. Điều này có thể do một hoặc nhiều nguyên nhân sau:
- Địa chỉ IP hoặc tên máy chủ trong URL JDBC không chính xác.
- Tên máy chủ trong URL JDBC không được máy chủ DNS cục bộ nhận dạng.
- Số cổng bị thiếu hoặc sai trong URL JDBC.
- Máy chủ DB không hoạt động.
- Máy chủ DB không chấp nhận kết nối TCP / IP.
- Máy chủ DB đã hết kết nối.
- Một cái gì đó giữa Java và DB đang chặn các kết nối, ví dụ:tường lửa hoặc proxy.
Để giải quyết vấn đề này hay vấn đề khác, hãy làm theo lời khuyên sau:
- Xác minh và kiểm tra chúng bằng
ping
.- Làm mới DNS hoặc sử dụng địa chỉ IP trong URL JDBC.
- Xác minh nó dựa trên
my.cnf
của MySQL DB.- Khởi động DB.
- Xác minh xem mysqld có được khởi động mà không có tùy chọn
--skip-networking option
hay không .- Khởi động lại DB và sửa mã của bạn tương ứng để nó đóng các kết nối trong
finally
.- Tắt tường lửa và / hoặc định cấu hình tường lửa / proxy để cho phép / chuyển tiếp cổng.
Xem thêm:
- Làm cách nào để kết nối với cơ sở dữ liệu / nguồn dữ liệu JDBC trong một ứng dụng dựa trên servlet?
- Sử dụng phiên bản java.sql.Connection tĩnh trong hệ thống đa luồng có an toàn không?