安装 mysql 8.0后;root用户在客户端连接不上
--- mysql workbench
Failed to Connect to MySQL at 10.211.55.6:3306 with user root
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
--- navcat
连接失败
Client does not support authentication protocol requested by server; consider upgrading MySQL client
原因:密码加密方式【caching_sha2_password】,客户端不支持。
在数据库服务器上登录:
mysql>use mysql;
mysql>select user, host, plugin, authentication_string from user\G;
*************************** 2. row ***************************
user: root
host: %
plugin: caching_sha2_password
authentication_string: $A$005$XN:@GbgA#f7W+*'3rfILovff0TIgd2lrblzTBREzWsJSvRFNwV0Eu/C/XX9
果然 root 的密码是用 caching_sha2_password 插件加密的。而客户端找不到 caching_sha2_password 插件,于是登录不上。我第一反应是给客户端安装相应插件,然而看了官文档:

巴啦巴啦巴啦。。。 sha2_cache_cleaner, likecaching_sha2_password,插件是内置的,不需要安装。
好吧,我更新为最新的 mysql workbench【6.3.9 -> 6.3.10】
一链接,咣当,还是原来的错误。看来 6.3.10的 mysql workbench也没有打包相关插件。
于是我只好在服务端修改用户密码的加方式,看官方文档,需要用 mysql_native_password 加密。
我是用创建新用户来测试此方式是否可行的:
mysql>CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'test';
mysql>CREATE USER 'test1'@'%' IDENTIFIED BY 'test1';
在服务器启动配置中不设置 default-auth=mysql_native_password 的情况下用上面两行创建的用户
都是 mysql_native_password 加密的,原来服务器默认是用 mysql_native_password 加密的;
用上面用户在客户端连接,终于OK了;
那第问题来了,既然默认是用 mysql_native_password 加密的,为什么我的 root 的用户密码是用 caching_sha2_password 加密的?
我回忆在安装好mysql 后,首次登录修改密码时,我用的命令是:
mysql>set password for 'root'@'%' = password('root');
于我尝试用户这行命令去修改我新添加的用户:
mysql>set password for 'test1'@'%' = password('test1');
一查询,心中万只特殊小动物奔过:
*************************** 5. row ***************************
user: test1
host: %
plugin: mysql_native_password
authentication_string: *06C0BF5B64ECE2F648B5F048A71903906BA08E5C
于是我猜测,root用户 在安装数据库是,指定的加密插件是:caching_sha2_password,应该是我的安装没修改安装配置文件。
于是我要修改root用户的加密插件,因为用新添加的用户需要去授权,请原谅我的懒,一个牛B的前辈说过,不懒的程序员都不是一个好的程序员。
修改 root 用户密码:
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
完结。
安装 mysql 8.0后;root用户在客户端连接不上的更多相关文章
- windows下安装 mysql 8.0 以上版本以及遇到的问题
Windows 上安装 MySQL Windows 上安装 MySQL 相对来说会较为简单,地那就链接 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql ...
- windows 系统如何安装 mysql 8.0.15 数据库?
windows 系统如何安装 mysql 8.0.15 数据库? 1. 下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0. ...
- win10 安装mysql 8.0.18 解决Navicat初次连接报错
win10 安装mysql 8.0.18 解决Navicat初次连接报错 win10 安装mysql 8.0.18-winx64 一,先去官网下载mysql 安装包 https://dev.mysql ...
- Ubuntu18 安装 MySQL 8.0.22
Ubuntu18 安装 MySQL 8.0.22 网上教程都比旧,也不是第一次安装了,但依然还是花了比较多的时间,特此记录本次安装过程.因是安装完毕后回忆记录,或有错漏. 第一步: 下载 mysql ...
- 在 CentOS 7.5 64位上使用 yum 安装 MySQL 8.0
前段时间在 CentOS 7.5 64位上安装 MySQL 8.0.查了些资料,在这里记录一下详细的安装和设置步骤. 一.安装 使用yum安装MySQL之前需要先下载对应的.rpm文件,下载方法: 去 ...
- centos 安装mysql密码修改后还是不能连接的原因
centos 上安装mysql密码修改后还是不能连接出现错误:ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for ...
- 在Ubuntu 18.04 安装 MySQL 8.0
在Ubuntu 18.04 安装 MySQL 8.0 ① 登入 mysql 官网,在官网中下载 deb 包,点击该链接,即可下载. https://dev.mysql.com/downloads/re ...
- ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题(装)
ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题 https://blog.csdn.net/NeptuneClouds/article/details/80995 ...
- CentOS 7 下安装 MySQL 8.0
前言 本篇文章主要介绍在 CentOS 7 环境下安装 MySQL 8.0. 正文 1. 配置yum源 首先在 https://dev.mysql.com/downloads/repo/yum/ 找到 ...
随机推荐
- 编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款
查看本章节 查看作业目录 需求说明: 某用户共有两张银行卡,账户名称相同,但卡号和余额不同.模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路: 项目中创建账户类 Account,类中 ...
- Java面向对象笔记 • 【第11章 Swing高级应用】
全部章节 >>>> 本章目录 11.1 JTable表格组件 11.1.1 JTable表格组件 11.1.2 实践练习 11.2 菜单组件 11.2.1 菜单组件 11. ...
- 论文翻译:2020_Generative Adversarial Network based Acoustic Echo Cancellation
论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-5.pdf 基于GAN的回声消除 摘要 生成对抗网络(GANs)已成为语音增强( ...
- Docker 安装并运行 Redis
说明 在Windows下运行Redis主要有以下几种方式: 使用微软官方构建的Windows版Redis,最新版本是3.0.504,发布于2016-07-01.https://github.com/m ...
- Laravel Redis分布式锁的使用
创建锁 use Illuminate\Support\Facades\Cache; $lock = Cache::lock('foo', 10); if ($lock->get()) { // ...
- python的作用域、globals()-全局变量 和 locals()-局部变量
在python中,函数会创建一个自己的作用域,也称为为命名空间.当我们在函数内部访问某个变量时,函数会优先在自己的命名空间中寻找. 我们自己定义的全局变量均在python内建的globals()函数中 ...
- float类型数据精度问题:12.0f-11.9f=0.10000038,"减不尽"为什么?
现在我们就详细剖析一下浮点型运算为什么会造成精度丢失? 1.小数的二进制表示问题 首先我们要搞清楚下面两个问题: (1) 十进制整数如何转化为二进制数 算法很简单.举个例子,11表示成二进制数: 1 ...
- jsp文件中文乱码解决
文件顶加上 <%@ page contentType="text/html;charset=UTF-8" language="java" %>即可
- JS 判断上传文件类型
var video_src_file = $("#video_src_file").val(); var fileTypes = new Array("flv" ...
- java mapreduce实现网站PV分析
原文链接: https://www.toutiao.com/i6765677128022229517/ PV 是Page Views的缩写,即页面浏览量,用户每一次对网站中的每个网页访问均被记录一次. ...