【JAVA进阶篇教学】第八篇:Java链接MySql数据库异常

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【JAVA进阶篇教学】第八篇:Java链接MySql数据库异常

博主打算从0-1讲解下java进阶篇教学,今天教学第八篇:Java链接MySql数据库异常

本文主要记录下日常项目中java链接mysql异常情况,并且提供解决方案!本文会持续更新,有友友们留言的异常的话,我也会整理提供进去。谢谢大家支持!

ab643c0bbe8041e2a2e5dd4b0fcd0d8a_c93722ef1a144925bbe7d03837719e43.png

一、Communications link failure

具体报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure


Caused by: java.net.ConnectException: Connection timed out: connect

这个问题简单点说就是链接数据库失败,链接超时!

错误原因:

  1. 网络问题: 可能是由于网络不稳定或网络配置问题导致无法建立到数据库服务器的连接。
  2. 数据库服务器未启动: 如果数据库服务器未正确启动或已停止,将无法建立连接。
  3. 防火墙或网络代理问题: 防火墙或网络代理可能阻止了连接尝试,导致连接失败。


解决方案:

  1. 检查网络连接: 你可以在windows中使用cmd中,ping ip地址,如:ping 127.0.0.1,看看是否丢包,如果访问超时或者丢包则代表你访问不了这个ip地址。
  2. 确保数据库服务器运行: 你需要确保下你的windows或者是liunx服务器中mysql服务是否启动。
  3. 检查防火墙和网络代理设置: 如果你能ping通ip地址,但是telnet ip 端口号,例如:telnet 127.0.0.1 3306 不通,这个时候如果开启了防火墙,可能会导致你访问不了3306端口号,另外如果是云liunx服务器,则需要在你的云控制台中安全组或者安全策略中放行3306端口,并且查看下liunx服务器是否开启防火墙,如果没开启则不用管,开启了,则需要添加3306端口白名单。
  4. 检查数据库连接字符串: 确保数据库连接字符串配置正确,包括主机地址、端口号、用户名和密码。可以尝试手动连接数据库以确认连接参数是否正确。


二、Access denied for user

具体报错:java.sql.SQLException: Access denied for user 'root'@'122.235.136.146' (using password: YES)


错误原因:

你访问mysql数据库的账号或者密码错误。


解决方案:

确保数据库连接字符串配置正确,包括主机地址、端口号、用户名和密码。可以尝试手动连接数据库以确认连接参数是否正确。


三、javax.net.ssl.SSLHandshakeException

具体报错:Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)


错误原因:

你的链接mysql字符串中,useSSL=true。

解决方案:

将useSSL=true改成useSSL=false 即可。

例如:

jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8


四、mysql8

如果你使用的是mysql8,那么驱动需要更新成8.0.x的。

驱动:com.mysql.cj.jdbc.Driver

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>

在设定时区的时候,如果设定serverTimezone=UTC,会比中国时间早8个小时,如果在中国,可以选择Asia/Shanghai或者Asia/Hongkong,或者像下面这样配置:

jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8


五、待续

如果有友友们想提供异常也是可以评论留言。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17小时前
|
监控 NoSQL Java
java云MES 系统源码Java+ springboot+ mysql 一款基于云计算技术的企业级生产管理系统
MES系统是生产企业对制造执行系统实施的重点在智能制造执行管理领域,而MES系统特点中的可伸缩、信息精确、开放、承接、安全等也传递出:MES在此管理领域中无可替代的“王者之尊”。MES制造执行系统特点集可伸缩性、精确性、开放性、承接性、经济性与安全性于一体,帮助企业解决生产中遇到的实际问题,降低运营成本,快速适应企业不断的制造执行管理需求,使得企业已有基础设施与一切可用资源实现高度集成,提升企业投资的有效性。
25 5
|
3天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从MySQL到Flink 1.16.2 Flink-SQL的数据同步工作出现了一个异常如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
17 0
|
4天前
|
存储 关系型数据库 MySQL
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
|
4天前
|
存储 数据可视化 前端开发
Echarts+vue+java+mysql实现数据可视化
Echarts+vue+java+mysql实现数据可视化
|
4天前
|
Java 关系型数据库 MySQL
MySql数据库级别MD5加密java MD5加密解密工具包
MySql数据库级别MD5加密java MD5加密解密工具包
|
5天前
|
SQL Java 数据库连接
Java一分钟之-JDBC:Java数据库连接基础
【5月更文挑战第14天】JDBC是Java与关系数据库交互的API,常见问题包括资源管理、SQL注入和性能优化。易错点涉及驱动加载、空指针异常和事务管理。避免这些问题的方法有使用try-with-resources自动关闭资源、预编译PreparedStatement以防止SQL注入,以及正确管理事务。示例代码展示了基本的JDBC连接和查询。在实际开发中,推荐使用ORM框架如Hibernate或JPA来简化数据库操作。
15 1
|
5天前
|
Java 数据挖掘 BI
Java医院绩效考核系统源码B/S+avue+MySQL助力医院实现精细化管理
医院绩效考核系统目标是实现对科室、病区财务指标、客户指标、流程指标、成长指标的全面考核、分析,并与奖金分配、学科建设水平评价挂钩。
32 0
|
3天前
|
关系型数据库 MySQL API
实时计算 Flink版产品使用合集之可以通过mysql-cdc动态监听MySQL数据库的数据变动吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
27 0
|
5天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
28 0
|
5天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
20 0