连接数据库经常会遇到各种连接错误:
SQLException: Connection refused;
Connection timed out;
exceptions.jdbc4.CommunicationsException: Communications link failure;
这可能是下列的原因:
- JDBC URL 中的 IP 地址或主机名是错误的。
- 本地 DNS 服务器无法识别 JDBC URL 中的主机名。
- JDBC URL 中缺少端口号或错误。
- 数据库服务器已关闭。
- 数据库服务器不接受 TCP / IP 连接。
- 数据库服务器已经用完了连接。
- Java 和 DB 之间的东西阻塞连接,例如防火墙或代理。
要解决这个或那个问题,请遵循以下建议:
- 用 ping 验证并测试它们 。
- 刷新 DNS 或使用 JDBC URL中的 IP 地址。
- 验证 MySQL DB 的 my.conf 文件。
- 启动 数据库。
- 验证mysqld是否开启了 --skip-networking (开启该选项后就不能远程访问MySQL)
- 重新启动数据库,并相应地在 finally{ } 代码块里 修复您的代码,正确关闭连接。
- 禁用防火墙 或 配置防火墙代理以允许转发端口。
原文地址:(stackoverflow)
https://stackoverflow.com/questions/2983248/com-mysql-jdbc-exceptions-jdbc4-communicationsexception-communications-link-fai?answertab=votes#tab-top