mysql数据库5.0和8.0的对接问题

前言

故事发生在前阵子。两个小伙伴用eclipse开发(接手)一个用于练手项目,然后报500,磨了好一会儿,数据库名字一样,数据结构一样,账号密码一样。。。最后才发现是版本断层了,5.5版本的接了8.0版本的数据库配置。
在然后一直报错,上图:
在这里插入图片描述

首先分析一下可能的原因(查找的)

1,语法变化:MySQL 8.0引入了一些SQL语句的语法变化,这可能会导致以前在MySQL 5.7中工作的查询出错。
2,默认设置的更改:MySQL 8.0更改了一些默认设置,如身份验证插件,这可能会导致依赖以前默认设置的应用程序出现问题。,
3,删除弃用的功能:MySQL 8.0从MySQL 5.7中删除了一些弃用的功能,这可能会导致依赖这些功能的应用程序出现错误或问题。
4,数据类型的变化:MySQL 8.0引入了新的数据类型,并改变了一些现有数据类型的行为,这可能会导致依赖以前数据类型行为的应用程序出现问题。
5,权限和角色的更改:MySQL 8.0引入了权限和角色方面的更改,这可能会导致依赖先前权限和角色设置的应用程序出现问题。
(不过一般情况会出现在2不分析也行)
通常来说万能解决方法就是在你配置的url这一行加后缀:

url=jdbc:mysql://127.0.0.1:3306(本机ip)/你数据库的名字?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8

这里解释一下?后面代码的意思:

serverTimezone=UTC

这将MySQL服务器的时区设置为UTC。这是必要的,因为MySQL服务器可能与客户端有不同的时区,这可能会导致时间戳和基于时间的查询问题。

useUnicode=true

这指定MySQL驱动程序在与数据库通信时应使用Unicode字符编码。Unicode是一个标准字符集,支持来自许多不同语言和脚本的字符。

characterEncoding=utf-8

它指定与数据库通信时要使用的字符编码,在这种情况下,它被设置为utf-8。UTF-8是一种广泛使用的字符编码,支持来自许多不同语言和脚本的字符。

后文

当然,如果是接手项目,并不知道之前的人前端实现逻辑的话,虽然调整了时区,仍有可能会出现8/4小时的时差,这并不定是数据库或者后端配置的问题,出现原因不详,解决的话比较正式的项目可以寻求一些大佬帮助,如果校正时间仍存在该问题建议是后端加条代码手动弥补,不应该在这上面花太多时间。

猜你喜欢

转载自blog.csdn.net/qq_55332182/article/details/125143020
今日推荐