MySQL8.0.37使用过程中返回的两个错误(Error Code: 3780和Communications link failure)

文章目录

  • 小结
  • 问题及解决
    • [Error Code: 3780. Referencing column 'xxx' and referenced column 'xxx' in foreign key constraint 'zzz' are incompatible](#Error Code: 3780. Referencing column 'xxx' and referenced column 'xxx' in foreign key constraint 'zzz' are incompatible)
    • [com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure](#com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure)
  • 参考

小结

最近在使用MySQL8.0.37过程中返回的两个错误(Error Code: 3780和Communications link failure),进行了解决。

问题及解决

Error Code: 3780. Referencing column 'xxx' and referenced column 'xxx' in foreign key constraint 'zzz' are incompatible

出更 这个问题的原因是因为数据表的COLLATE属性不匹配,对数据表的创建进行以下修改:

sql 复制代码
/* Create Tables */

CREATE TABLE `XXX_LIST`
(
	`XXXID` VARCHAR(20) NOT NULL,
	`CONFIGURATIONID` INT NOT NULL,
	CONSTRAINT `PK_XXX_LIST_CONFIGURATION` PRIMARY KEY (`XXXID` ASC)
) 
;

修改COLLATE属性一致,问题解决。

sql 复制代码
/* Create Tables */

CREATE TABLE `XXX_LIST`
(
	`XXXID` VARCHAR(20) NOT NULL,
	`CONFIGURATIONID` INT NOT NULL,
	CONSTRAINT `PK_XXX_LIST_CONFIGURATION` PRIMARY KEY (`XXXID` ASC)
) ENGINE=InnoDB 
    DEFAULT CHARSET=latin1 
    COLLATE latin1_swedish_ci;
;

具体报错如下:

java 复制代码
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-j-8.3.0.jar:8.3.0]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-j-8.3.0.jar:8.3.0]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:815) ~[mysql-connector-j-8.3.0.jar:8.3.0]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:438) ~[mysql-connector-j-8.3.0.jar:8.3.0]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.3.0.jar:8.3.0]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:189) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    。。。。。。 省略   。。。。。。
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

进行各种检查,发现数据库连接有问题,进行相应的重置,问题解决。

参考

stackoverflow: Error when foreign referencing in mySQL (Error 3780)
stackoverflow: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure Spring boot

相关推荐
剩下了什么4 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
山峰哥5 小时前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
较劲男子汉5 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
java搬砖工-苤-初心不变5 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
山岚的运维笔记7 小时前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
roman_日积跬步-终至千里8 小时前
【LangGraph4j】LangGraph4j 核心概念与图编排原理
java·服务器·数据库
汇智信科8 小时前
打破信息孤岛,重构企业效率:汇智信科企业信息系统一体化运营平台
数据库·重构
野犬寒鸦8 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
晚霞的不甘9 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
市场部需要一个软件开发岗位10 小时前
JAVA开发常见安全问题:纵向越权
java·数据库·安全