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
相关推荐
Hoxy.R7 分钟前
【每日一错】Oracle 19c CDB中如何启动一个PDB
数据库·oracle
辰_砂10 分钟前
Rockylinux9系统安装KingBaseESV9
数据库
馨羽的玩具12 分钟前
查哪个程序一直登录sql server失败
运维·服务器·数据库
midsummer_woo12 分钟前
基于springboot的编程训练系统设计与实现(源码+论文)
数据库·spring boot·oracle
苹果醋322 分钟前
[MySQL] MySQL 版本不支持 ST_Distance_Sphere替代方案和解决方案
java·运维·spring boot·mysql·nginx
看天走路吃雪糕34 分钟前
墨者:SQL手工注入漏洞测试(Oracle数据库)
数据库·oracle·sql注入·墨者靶场
GreatSQL社区44 分钟前
CTE查询数据量过大导致MySQL 8.0发生CORE问题解析
android·数据库·mysql
格发许可优化管理系统2 小时前
GTSuite许可证性能优化建议
大数据·运维·数据库·安全·性能优化·数据分析
lang201509282 小时前
Apache Ignite 中的分布式 JOIN 操作
数据库·分布式·ignite
字节高级特工2 小时前
【Linux篇】补充:消息队列和systemV信号量
linux·运维·服务器·c语言·数据库