MySQL 配置和连接问题解决方案

MySQL 配置和连接问题解决方案

问题描述

1. MySQL 驱动加载失败

bash 复制代码
2023-12-05 21:23:34.289 ERROR 35552 --- [main] com.zaxxer.hikari.HikariConfig : Failed to load driver class com.mysql.cj.jdbc.Driver from HikariConfig class classloader sun.misc.Launcher$AppClassLoader@18b4aac2
  • 原因 :使用了 MySQL 驱动版本 5.1.49,其中驱动类名为 com.mysql.jdbc.Driver 而不是 com.mysql.cj.jdbc.Driver(适用于版本为8.0)。
    pom.xml 中的 MySQL 驱动依赖:

    xml 复制代码
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.49</version>
        <scope>runtime</scope>
    </dependency>
  • 解决办法

    • 在应用配置中将驱动类名更改为 com.mysql.jdbc.Driver
    bash 复制代码
    spring.datasource.driver-class-name: com.mysql.jdbc.Driver

2. 不支持 utf8mb4 字符编码

java.sql.SQLException: Unsupported character encoding 'utf8mb4'
  • 原因 :MySQL 8.0 版本更改为 5.7 版本后,出现不支持 utf8mb4 编码的错误。

解决方案

第一步:设置 MySQL 配置文件 my.cnf

  • 若在云服务器中,可以在/etc 目录下找,一般为/etc/mysql/my.cnf/etc/my.cnf
ini 复制代码
[client] 
default-character-set = utf8mb4 

[mysql] 
default-character-set = utf8mb4 

[mysqld] 
character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'

第二步:更改 JDBC 连接字符串

  • 原连接字符串

    jdbc:mysql://localhost:3306/db_xxxxx?useSSL=false&characterEncoding=utf8mb4
    
  • 修改后的连接字符串

    jdbc:mysql://localhost:3306/db_xxxxx?useSSL=false&character_set_server=utf8mb4
    
相关推荐
island13142 小时前
【QT】 控件 -- 显示类
开发语言·数据库·qt
Andya_net2 小时前
网络安全 | F5-Attack Signatures-Set详解
网络·数据库·web安全
码农幻想梦3 小时前
实验二 数据库的附加/分离、导入/导出与备份/还原
数据库·oracle
hillstream33 小时前
Synology 群辉NAS安装(6)安装mssql
数据库·sqlserver
行十万里人生4 小时前
Qt 控件与布局管理
数据库·qt·microsoft·华为od·华为·华为云·harmonyos
betazhou4 小时前
sysbench压力测试工具mysql以及postgresql
数据库·mysql·postgresql
莳花微语4 小时前
OGG 19C 集成模式启用DDL复制
数据库·oracle
潜水的码不二5 小时前
Redis高阶3-缓存双写一致性
数据库·redis·缓存
落霞的思绪5 小时前
Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)
数据库·spring boot·redis·后端·缓存
老苏畅谈运维8 小时前
MySQL性能分析的“秘密武器”,深度剖析SQL问题
数据库·sql·mysql