前言

吐槽一下,均是这两天遇到的破烂事儿,搞定了也好,以后出现此类问题也就放心些了。

下列遇到的问题大都是因为MySQL从5.x版本升级到8.0.11(MySQL8.0涉及重大改版)后,跟着连带着出现的情况。

为方便快速检索,本文按照【MySQL错误代码】升序排列

在后续的开发过程,本文将把所遇MySQL错误的相关问题持续更新

SELECT VERSION()查看数据库当前版本

1 针对问题 【登录/鉴权 1045(28000)】Access denied for user 'root'@'localhost' (using password: YES)

原因分析

可能情况1: 用户名和密码不匹配 (乃至可能, 数据库连接的配置信息存在空格、多打或少打了字符)

可能情况2: 用户的权限不足 (用户授权 详见 https://www.cnblogs.com/johnnyzen/p/7922780.html)

GRANT ALL PRIVILEGES ON databaseName.* TO userName@host IDENTIFIED BY password;

可能情况3: 数据库与应用程序的数据传输过程中产生的【编码 不匹配】问题

可尝试在数据库连接的Url后 添加 useUnicode=true&characterEncoding=UTF-8

2 针对问题 【授权 1410(42000)】ERROR 1410 (42000): You are not allowed to create a user with GRANT

原因:

MySQL8.0的重大改版,导致 【创建用户】与【授权】分开执行 ( 即 必须先创建用户,才能后续授权)

解决办法

USE mysql; ## 使用mysql数据库

UPDATE user SET host='%' WHERE user='userName'; # 修改指定用户的host范围

FLUSH PRIVILEGES; # 刷新权限表

GRANT ALL PRIVILEGES ON dataBaseName.* to userName@host; # 授权

FLUSH PRIVILEGES; # 刷新权限表

3 针对问题 【登陆/鉴权 1698(28000)】ERROR 1698 (28000):Access denied for user 'root'@'localhost'" error

4 针对问题 【登陆/鉴权 2059】Unable to load authentication plugin 'caching_sha2_password”

原因

MySQL数据库8.0以后,改变了身份验证插件为’caching_sha2_password’ 而之前的身份验证方式(default_authentication_plugin)=mysql_native_password

解决方法

方法一 使用老版本的身份验证插件方式 [in MySQL]

ALTER USER userName@host IDENTIFIED WITH mysql_native_password BY ‘用户密码’;

方法二 使用8.0以后的MySQL驱动(java的jdbc包) [in POM.xml and driverName]

1 更新 jdbc的驱动程序(8.0+)

[2 修改驱动名(原先的旧驱动名也可继续使用)] com.mysql.jdbc.Driver → com.mysql.cj.jdbc.Driver

mysql

mysql-connector-java

8.0.15

5 针对问题 java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

背景

多出现在使用MySQL 8.0以上版本(MySQL连接驱动和版本都是8.0以上)的时候易出现本错误

解决方法

数据库连接的 Url 中 添加: allowPublicKeyRetrieval=true

6 针对问题 Unknown system variable 'query_cache_size'

背景

jdbc(mysql-connecter-java)驱动程序的版本太低,导致 数据库驱动程序与数据库版本不适配 (注:查看数据库版本 SELECT VERSION() )

MySQL官方: query cache在MySQL5.7.20就已经过时了,而在MySQL8.0之后就已经被移除了。

解决方法

1 更新 jdbc的驱动程序(8.0+)

[2 修改驱动名(原先的旧驱动名也可继续使用)] com.mysql.jdbc.Driver → com.mysql.cj.jdbc.Driver

mysql

mysql-connector-java

8.0.15

7 针对问题 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

背景

多出现在使用MySQL 8.0以上版本(MySQL连接驱动和版本都是8.0以上)的时候易出现本错误

解决方法

法一 show variables like '%time_zone%'; set global time_zone='+8:00';

法二 数据库连接的Url后面加上 &serverTimezone=GMT%2B8 【未亲测】

8 参考文献

java 操作mysql数据库得到错误码_[数据库/Java]数据库开发过程中产生的MySQL错误代码及其解决方案...相关推荐

  1. java操作xml一般都用什么_用Java如何处理XML数据

    用Java如何处理XML数据 Java原生内置的处理XML的技术基本有这么几种:DOM,SAX,Stax,Jaxb.那么用Java我们要如何处理XML数据,希望对大家有帮助! DOM :Documen ...

  2. java 高德地图错误码_错误码对照表-实用工具-开发指南-Android 地图SDK | 高德地图API...

    新版响应码状态描述问题排查策略 1000请求正常服务调用正常,有结果返回 1001开发者签名未通过1.开发者在Key控制台中,开启了"数字签名"功能,但没有按照指定算法生成&quo ...

  3. mysql版本不同会导致语法错误码_神奇的 SQL,Group By 真扎心,原来是这样!

    作者:青石路 原文:cnblogs.com/youzhibing/p/11516154.html GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 S ...

  4. mysql数据库常见错误码大全

    1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目 ...

  5. error 系统错误 错误码10007_在Java项目中打印错误日志的正确姿势,排查问题更方便,非常实用!...

    作者:琴水玉 cnblogs.com/lovesqcc/p/4319594.html 在程序中打错误日志的主要目标是为更好地排查问题和解决问题提供重要线索和指导. 但是在实际中打的错误日志内容和格式变 ...

  6. mysql被格式化恢复数据_三种常见数据库文件恢复方法介绍

    数据库可以说是一个数据仓库,因此在数据安全方面,每个数据库从备份到恢复,都有自己的一套方法流程.今天我们就从常见的MySQL, SQL以及Oracle三种数据库,来讲讲数据库恢复方法. 首先,最简单的 ...

  7. mysql killed进程不结束_优秀的数据库产品——MySQL 云数据库服务

    作为一种低成本,高性能,高可靠性和开放源代码的数据库产品,MySQL已在Internet公司中广泛使用. 例如,淘宝有数千个MySQL服务器. 尽管NoSQL在过去两年中发展迅速,新产品层出不穷,但N ...

  8. mysql常见的错误码

    Mysql错误代码  Mysql错误代码分为两部分,老版本一部分,4.1版本为新的部分 第一部分:  mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error ...

  9. mysql jtds驱动在哪_几个数据库的驱动、连接

    因为经常需要加载.连接.操作数据库,在此将几个数据库的驱动加载整理了一下... 1.Access Class.forName("sun.jdbc.odbc.JdbcOdbcDriver&qu ...

最新文章

  1. 为MyEclipse加入自己定义凝视
  2. 日志管理:(二)og4j.xml警告log4j:WARN The content of element type log4j:configuration m
  3. 从Java集成Active Directory
  4. 【绝对干货】kafkastream广告
  5. ctl命令 usb_USB入门系列之六 —— USB设备的枚举过程
  6. 面向云数据库,超低延迟文件系统PolarFS诞生了 1
  7. mysql 覆盖式索引_【MySQL】性能优化之 覆盖索引
  8. 简易RAM的C++实现
  9. 夯实Java基础系列16:一文读懂Java IO流和常见面试题
  10. Java项目:SSM网吧计费管理系统
  11. 微信公众号群发模板消息占用每月4次群发次数吗
  12. 7.8 Cound 练习
  13. 同窗情【之一】(词21首)
  14. 网站seo淘宝客不能做了?我是怎么用网站做淘客月入过万的
  15. 关于网络连接里无虚拟网络适配器的解决办法
  16. JVM MAT分析器中的shallow heap 和 retained heap详解
  17. my dear dalao please bangbang wo
  18. Hides for Mac v5.6一键隐藏所有应用 支持 M1
  19. linux里进程状态为sl,Linux ps state sl+是什么意思
  20. 详解Linux内核IO技术栈

热门文章

  1. 【杠精】问卷星防切屏解除方法-解除问卷星平台模拟考试防作弊禁止选中文本复制以及右键菜单的方法
  2. ATS插件channel_stats源码分析解读
  3. 在ATS 5.3.0上测试background_fetch插件
  4. 将BST转换为有序的双向链表!
  5. Zbrush2021写实人物肖像雕刻学习教程
  6. ARM 的几个重要特点
  7. caffe prototxt分析
  8. mysql like 命中索引
  9. Flask-login Question
  10. android layout analyze