首页 > 数据库 >mysql 5.0升级到8.0

mysql 5.0升级到8.0

时间:2023-08-14 16:14:01浏览次数:43  
标签:5.0 8.0 ci jdbc utf8mb4 UTC mysql com

1. 替换新的驱动jar包

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.31</version>
        </dependency>
            
2. 替换新驱动类
com.mysql.cj.jdbc.Driver

mysql8.0以上的版本驱动更新成com.mysql.cj.jdbc.Driver
其实com.mysql.cj.jdbc.Driver继承了com.mysql.jdbc.Driver,如果不修改的话也能启动成功,但是会有如下告警信息,所以安全起见,还是需要修改此些配置项
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

3. 替换新url连接,需要指定时区
jdbc.url=jdbc:mysql://localhost:3306/项目名称?serverTimezone=UTC&characterEncoding=utf-8

GMT:Greenwich Mean Time,格林尼治平时,又称格林尼治平均时间或格林尼治标准时间。是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间。
GMT存在较大误差,因此现在已不再被作为标准时间使用。现在的标准时间,是由原子钟报时的协调世界时(UTC)
UTC:Universal Time Coordinated,中文名称:世界标准时间或世界协调时。可以理解为全世界都公用的一个时间。它实际上反映了一种约定,即为全世界所认可的一个统一时间,而不是某特定地区的时间。
中国人常用的北京时间比UTC时间快8个小时。也即UTC时间凌晨0点时,北京时间已经是早上8点,这就是为啥全世界人往往不直接用UTC时间计时原因。
CST:China Standard Time,即中国标准时间。在时区划分上,属东八区,比协调世界时早8小时,记为UTC+8。

 

注意事项:

1、 可能存在字符集问题,查看collation_connection的配置:show variables WHERE Variable_name like 'collation%';

org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT NEXTVAL('XXXX') SEQ FROM DUAL]; SQL state [HY000]; error code [1267]; Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='; nested exception is java.sql.SQLException: Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

如果不是utf8mb4_general_ci,则需要通过以下命令修改

 

SET PERSIST collation_connection='utf8mb4_general_ci';
SET PERSIST default_collation_for_utf8mb4='utf8mb4_general_ci';

 

2、 保留字问题,新增保留字需要加标识处理。例如rank等新增保留字

MySQL 8.0 新增的关键字和保留字:

带(R)标识的为保留字。

ACTIVE

ADMIN

ARRAY

ATTRIBUTE

BUCKETS

CLONE

COMPONENT

CUME_DIST (R)

DEFINITION

DENSE_RANK (R)

DESCRIPTION

EMPTY (R)

ENFORCED

ENGINE_ATTRIBUTE

EXCEPT (R)

EXCLUDE

FAILED_LOGIN_ATTEMPTS

FIRST_VALUE (R)

FOLLOWING

GEOMCOLLECTION

GET_MASTER_PUBLIC_KEY

GROUPING (R)

GROUPS (R)

HISTOGRAM

HISTORY

INACTIVE

INVISIBLE

JSON_TABLE (R)

JSON_VALUE

LAG (R)

LAST_VALUE (R)

LATERAL (R)

LEAD (R)

LOCKED

MANAGED

MASTER_COMPRESSION_ALGORITH

MSMASTER_PUBLIC_KEY_PATH

MASTER_TLS_CIPHERSUITES

MASTER_ZSTD_COMPRESSION_LEVEL

MEMBER

NESTED

NETWORK_NAMESPACE

NOWAIT

NTH_VALUE (R)

NTILE (R)

NULLS

OF (R)

OFF

OJ

OLD

OPTIONAL

ORDINALITY

ORGANIZATION

OTHERS

OVER (R)

PASSWORD_LOCK_TIME

PATH

PERCENT_RANK (R)

PERSIST

PERSIST_ONLY

PRECEDING

PRIVILEGE_CHECKS_USER

PROCESS

RANDOM

RANK (R)

RECURSIVE (R)

REFERENCE

REQUIRE_ROW_FORMAT

RESOURCE

RESPECT

RESTART

RETAIN

RETURNING

REUSE

ROLE

ROW_NUMBER (R)

SECONDARY

SECONDARY_ENGINE

SECONDARY_ENGINE_ATTRIBUTE

SECONDARY_LOAD

SECONDARY_UNLOAD

SKIP

SRID

STREAM

SYSTEM (R)

THREAD_PRIORITY

TIES

TLS

UNBOUNDED

VCPU

VISIBLE

WINDOW (R)

MySQL 8.0 移除的关键字和保留字:

ANALYSE

DES_KEY_FILE

PARSE_GCOL_EXPR

REDOFILE

SQL_CACHE

 

3、GROUP BY DESC/ASC不支持   4、表外键不可超过64个字符
5、SQL MODEL,当前不支持NO_AUTO_CREATE_USER,检查相关影响
6、区分大小写
7、datetime值区间在"1000-01-01 00:00:00"至"9999-12-31 23:59:59"

 

标签:5.0,8.0,ci,jdbc,utf8mb4,UTC,mysql,com
From: https://www.cnblogs.com/hzzjj/p/17628905.html

相关文章

  • mysql怎么查询数据库容量(转)
    注:本文来源<mysql怎么查询数据库容量>  作者:文/@UTHEME2023-05-1107:00:02在数据库管理的过程中,经常需要查询数据库或表的容量大小,以方便更好地管理和优化数据库。MySQL作为一种流行的数据库管理系统,非常适合用于此任务。那么,如何在MySQL中查询数据库容量呢?首先,我们需要打......
  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都......
  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都可......
  • Android 5.0(Lollipop)中的SurfaceTexture,TextureView, SurfaceView和GLSurfaceView
    https://blog.csdn.net/jinzhuojun/article/details/44062175SurfaceView,GLSurfaceView,SurfaceTexture以及TextureView是Android当中名字比较绕,关系又比较密切的几个类。本文基于Android5.0(Lollipop)的代码理一下它们的基本原理,联系与区别。SurfaceView从Android1.0(API......
  • CentOS7安装MySQL:使用Yum存储库方式
    一、安装环境安装环境如下:服务器:CentOS7.9安装版本:MySQL5.7(最新版)二、安装过程和细节1、在官网下载MySQLYum源安装文件用MySQLYum存储库安装的方式,其实就是通过Linux系统的Yum源安装的方式,主要的Yum源配置文件存放在/etc/yum.repos.d目录下,所以要想通过这种方式安......
  • Mysql - BIGINT 数据类型
    1、bigint默认是有符号,即取值范围是正负范围比如:bigint(20),就是-1234567890123456789~+12345678901234567892、bigintunsigned无符号,即取值范围就是正值范围比如:bigint(20),就是+12345678901234567890BIGINTUNSIGNED是MySQL中一种无符号的整数数据类型,使用8个字节(64位)......
  • mysql账号密码失效后无法修改密码问题处理过程
    --修改密码alterusermeet@'%'identifiedwithmysql_native_passwordby'123456';--修改账户有效期alteruser'meet'@'%'passwordexpireinterval600day;报错处理:ERROR1396(HY000):OperationALTERUSERfailedfor'meet�......
  • mysql用户管理
     授权是在数据库服务器里添加用户并设置权限及密码-user表:保存已有的授权用户及用户对所有库的权限-db表: 保存已有授权用户对某一个库的访问权限-tables_priv:记录已有授权用户对某一张表的访问权限-columens_priv:记录已有授权用户对某一个表头的访问权限格式:创建......
  • MySQL
    Binlog(二进制日志):是逻辑日志,记录对数据库的操作改变的SQL,包括操作类型、值、时间戳、操作者等信息,还有事务的开始、提交、回滚等标记。具有平台无关性,可跨服务器、数据库引擎,但在跨平台时需要注意一些配置和环境问题。主要用于数据迁移、主从复制,以及数据恢复操作。在操作时......
  • 使用node_exporter方式采集MySQL慢SQL信息在grafana面板显示
    【背景说明】因为要集成监控数据,需要把MySQL的慢SQL日志信息显示在grafana,其他方法抓取慢日志然后显示到面板需要安装挺多插件,是简单的脚本采集数据,这里使用node_exporter方式实现。说明:看实际情况,方便的采集MySQL慢日志的话可以直接使用PMM来监控就行【步骤】前提:安装好prome......