主要记录下自己的出坑过程,有些其实并不是mysql8的问题,但是由于这个版本产生的阻塞时间最长,所以一并记录;

1-项目代码别人能运行,我本地运行不了

定位后发现是由于本地代码运行数据库连接失败,后来为数据库创建了一个接受所有ip连接的新用户之后,使用该用户进行连接就不会报连接错误了。之所以不去修改root的访问权限,是因为root不能修改自己,暂时不知道怎么改。

2-修改完数据库访问权限之后又会报一个新的错误:

MySQL Error: Authentication plugin 'caching_sha2_password' not supported by any of avaliable plugins

这个错误提示是比较明显的。大意为:mysql8数据库服务器中指定需要使用sha2这种算法进行加密,但是目前使用的mysql客户端(可能是可视化工具如:navicat或者代码)并不支持,索引导致失败。

因为sha1加密算法被破解了,所以mysql8之后都升级了成了sha2算法。mysq8默认的认证插件是cacheing_sha2_password插件,原来的版本使用的是mysql_native_password插件,这使得原来的mysql连接客户端出现认证失败的问题。

所以有两种方式可以解决问题:

  • 将服务端的加密方式修改为sha1

    在数据库中执行下面的语句得以解决:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ‘#2017';

  • 强客户端的加密方式修改为sha2

    将客户端的加密方式修改为sha2,例如将mysql-connector-java更换为最新的版本,如果使用一些图形化连接工具,那么可以通过修改配置信息解决。

3-修改完加密方式之后又报创建数据库l连接失败

  排查了一大圈,也没有找出原因,最后指定了一个高版本mysql-connect-java包才解决了问题,具体什么问题无从得知。

mysql8的深坑的更多相关文章

  1. 在Web API中使用Swagger-UI开源组件(一个深坑的解决)

    介绍: Swagger-Ui是一个非常棒的Web API说明帮助页,具体详情可自行Google和百度. 官网:http://swagger.io/    GitHub地址:https://github ...

  2. 拒绝深坑!记录找了多半天时间的C++编译失败的错误

    采用新的源码,和原来的服务改动也不是很大,但是拒绝深坑啊,找了半天以为是源码的问题,结果倒好原来是环境的问题,还是要感谢一个神一样的人物的帮助 编译的时候一直出现undefined reference ...

  3. android MultiDex multidex原理原理下遇见的N个深坑(二)

    android MultiDex 原理下遇见的N个深坑(二) 这是在一个论坛看到的问题,其实你不知道MultiDex到底有多坑. 不了解的可以先看上篇文章:android MultiDex multi ...

  4. 2、使用Angular-CLI初始化Angular项目(踩过的深坑!!!)

    1.step1:建一个放项目的文件夹,打开cmd,或vs code的终端,找到文件夹根目录 2.step2:初始化脚手架 初始化命令: ng new 项目名称 --skip-install 注意:-- ...

  5. Go语言第一深坑:interface 与 nil 的比较

    interface简介 Go 语言以简单易上手而著称,它的语法非常简单,熟悉 C++,Java 的开发者只需要很短的时间就可以掌握 Go 语言的基本用法. interface 是 Go 语言里所提供的 ...

  6. 【Unity笔记】Terrain地形制作坍塌/深坑

    Unity的Terrain组件在[set the terrain height]分页下,height高度为0时,可理解为该地形的海平面高度,此时就不能地形下榻.把height调到100,点击[flat ...

  7. vue经验 - 那些自己给自己挖的深坑

    深坑场景:vue-异步请求数据,数据还没回来,页面却如饥似渴的准备好了的尴尬场景:问题原因和解决如下: 1.先说vuex中的store,一开始我为了偷懒是这么设置的,如下图: 然后我到了组件中直接这么 ...

  8. 这个PHP无解深坑,你能解出来吗?(听说能解出来的都很秀)

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由horstxu发表于云+社区专栏 1. 问题背景 PHP Laravel框架中的db migration是比较常用的一个功能了.在每个 ...

  9. golang深坑记录

    go深坑:1.gin.context.JSON,如果没有make数组时,数组返回为null,make后,数组为[]2.json.Number转int64类型 datatemp.(json.Number ...

随机推荐

  1. 从零开始学Electron笔记(二)

    在之前的文章我们简单介绍了一下Electron可以用WEB语言开发桌面级应用,接下来我们继续说一下Electron的菜单创建和事件绑定. 我们接上一章的代码继续编写,上一章代码 https://www ...

  2. day76 vue框架入门

    目录 一.vue.js快速入门使用 1 vue.js库的下载 2 vue.js库的使用 3 vue.js的M-V-VM思想 4 显示数据 二.常用指令 1 操作属性 2 事件的绑定 3 样式操作 3. ...

  3. easy tornado

    easy tornado 题目分析 这是一道2018年护网杯的题目 /flag.txt /welcome.txt /hints.txt 一共有3个文件. /flag.txt flag in /flll ...

  4. (六)pandas 日常使用技巧

    pandas数据处理 1.删除重复元素 import numpy as np import pandas as pd from pandas import Series,DataFrame df = ...

  5. bzoj3621我想那还真是令人高兴啊

    bzoj3621我想那还真是令人高兴啊 题意: T组数据,每组给出两个三角形各点坐标,要求求出一个点使第一个三角形可以绕这个点放缩和旋转得到另一个三角形.T≤10,坐标为≤10000的实数,数据保证三 ...

  6. Web Scraping using Python Scrapy_BS4 - using Scrapy and Python(2)

    Scrapy Architecture Creating a Spider. Spiders are classes that you define that Scrapy uses to scrap ...

  7. Linux 后台启动 Redis

    1. 修改 redis.conf 首先,这里有一个坑 ! 不同的 redis版本,在安装的时候,redis.conf 的路径稍微有些不同 redis.conf 可能出现的三个位置: /etc/redi ...

  8. JAVA集合三:几种Set框架

    参考链接: HOW2J.CN HashSet简单讲解 HashSet HashSet与C++STL中Set基本类似,具有的特点便是: 集合中元素不可重复 集合中元素顺序 ≠ 插入顺序 常用方法 功能 ...

  9. Git的忽略文件

    *.iml.gradle.idea/local.properties/.idea/workspace.xml/.idea/libraries.DS_Store/build/captures.exter ...

  10. eclipse IDE usage of my own and tutorials link list

    设置 字符集 Eclipse 修改字符集 默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设 ...