项目启动报数据库连接错误:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure解决办法

news/2024/5/18 22:43:26 标签: mysql, java, jdbc, mybatis, 数据库

echo编辑整理,欢迎转载,转载请声明文章来源。


将项目拉下来之后,发现启动报如下错误:

java"> Access denied for user 'root'@'localhost' (using password YES)
  • 这个错误说明数据库没有开放外部链接,密码是正确的,开放外部权限即可

解决办法

# 开放权限
# 登录mysql
mysql -u root -p
# 开放外部访问权限
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 注意这里很有可能报错,因为很有可能你的用户默认是root或者是以前创建过的docker镜像的用户,这里可以先查看'%'对应的用户是啥
- ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
# 查看'%'用户
use mysql
select user,host from user;
# 开放外部访问权限,根据查询出来'%'对应的用户设置
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'  IDENTIFIED BY '123456'  WITH GRANT OPTION;
# 刷新权限
flush privileges;

出现如下错误:

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
	at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.18.jar:8.0.18]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-java-8.0.18.jar:8.0.18]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.18.jar:8.0.18]
    ……
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

解决办法

# 先排除yml配置的数据库连接问题,最关键的几个点有:
- driver-class-name: com.mysql.jdbc.Driver

# 查看数据库是否有开放权限
- use mysql
  select user,host from user;
看看查询出来的用户名称对应的host是不是有开发对应的ip,或者干脆所有连接都可以的代表值"%"

# 查看mysql的版本和mysql-connector-java是否匹配
mysql5.7以前用5.1,5.7以后用8.0

# 如果还不行的话,试着加一个连接池试试

# 到这里还没解决的话,建议你把项目重新拉一遍,并且把mysql重新安装,很有可能是mysql的版本导致的,之前也碰到过版本bug

http://www.niftyadmin.cn/n/1638941.html

相关文章

数据库表结构导出word及分析对比工具

数据库静态表结构导出及分析对比工具 背景 随着系统一次次迭代升级,数据库不断更新维护,不同环境数据库表差异性逐渐增多,表结构设计缺陷也逐渐增多; 随着数据量增多,原有正常表,也会成为风险表(主键ID类…

oracle快速插入1kw条数据

oracle快速插入1kw条数据 declarem integer; begindbms_output.put_line(start:||sysdate);m:0;for i in 1..1000000 loopm:m1;INSERT INTO table()commit;end loop;dbms_output.put_line(end:||sysdate); end;

Sonar-代码质量检测搭建

下载安装SonarQube 下载官网路径:https://www.sonarqube.org/downloads/ 研究搭建使用版本:SonarQube7.8 (7.8以上不支持mysql数据库)mysql版本(5.6-5.8)软件环境JDK1.8 下载链接:https://b…

Mybatis教程-JDBC链接并直接操作数据库

Mybatis教程-JDBC链接并直接操作数据库 。echo编辑整理,欢迎转载,转载请声明文章来源。 什么是Mybatis?都说JDBC链接数据库操作很快,单纯使用JDBC比我们使用框架快多了。但是为什么我们都选用框架?首先我们需要来了解一…

Dubbo服务接口测试工具

背景 随着业务的发展,业务越来越复杂,为了提高系统性能,对业务解耦,对系统按业务模块拆分;服务之间的治理(SOA)、远程服务调用(RPC),组成复杂的网状的分布式系统。用户的访问的(pc,h5,android,ios等前端)页面并没有对业…

Aspect生成服务端API接口

背景 随着分布式系统逐渐成熟及普遍应用,应用与应用直接通过微服务调用,需要对外部提供相应API接口,为次提供一套切面生成API接口的工具 技术实现 aspectj 切面获取注解信息Java 反射获取属性信息SpringContext 获取spring 容器beanspoi工具…

Mybatis教程-使用Hikari和QueryRunner简化JDBC链接操作

Mybatis教程-简化JDBC链接操作 当我们发现使用JDBC有着很多冗余的代码的时候,我们可以自己封装一些代码,完成这些重复的操作。当然市面上其实也有很多这样的封装,这也是Mybatis发展历史中的重要一个环节。所有的框架都是基于不断的封装&#…

Drools规则引擎介绍及实践

1.规则引擎 规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。…