You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java连接MySQL数据库时出现通信链路失败异常的原因咨询

Java连接MySQL报CommunicationsException的原因排查

你遇到的com.mysql.cj.jdbc.exceptions.CommunicationsException属于连接环节异常,结合你的代码,先看最明显的错误,再逐一排查其他常见原因:

一、代码中的直接错误

你的连接URL格式有误:jdbc:mysql://localhost::3306/bankingsystem里localhost后面多了一个冒号,正确格式应为jdbc:mysql://localhost:3306/bankingsystem,双冒号会导致JDBC无法解析端口,直接引发连接失败。

另外你的main方法里创建Conn对象的代码被注释了,要去掉注释才能运行测试连接。

修正后的核心代码示例:

// 修正URL并添加SSL关闭参数(适配MySQL 8.0+)
c=DriverManager.getConnection("jdbc:mysql://localhost:3306/bankingsystem?useSSL=false","root","password");

// main方法中打开注释
public static void main(String[] args) {
    Conn Conexiune =new Conn();
}

二、其他常见排查方向

  • MySQL服务未启动:检查本地MySQL服务是否正常运行。Windows可在「服务」列表中查看,Linux执行systemctl status mysql确认状态,服务未启动无法建立连接。
  • 端口不匹配:确认MySQL配置的端口是3306,若修改过端口,URL需同步更新为对应端口号。
  • 驱动版本不兼容:MySQL 8.0+必须使用com.mysql.cj.jdbc.Driver(你的代码此处正确),但要确保mysql-connector-java驱动版本与MySQL版本匹配(如MySQL 8.0对应驱动8.0+);若为MySQL 5.x版本,需改用com.mysql.jdbc.Driver并对应5.x版本驱动。
  • 防火墙/安全软件拦截:本地防火墙或杀毒软件可能阻止Java程序访问3306端口,可临时关闭防火墙测试,若能连接则给Java程序或3306端口添加白名单。
  • 用户名/密码错误:虽然通常报Access denied,但部分场景也会触发通信异常,确认root用户密码正确,且该用户拥有localhost的连接权限。
  • 目标数据库不存在:确认bankingsystem数据库已创建,连接时指定不存在的数据库会导致连接失败。
  • SSL连接问题:MySQL 8.0+默认要求SSL连接,若未配置SSL,需在URL后追加?useSSL=false关闭SSL验证。

内容的提问来源于stack exchange,提问作者Renato Pomparau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:02:33