--- 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用户在客户端连接不上的更多相关文章

  1. windows下安装 mysql 8.0 以上版本以及遇到的问题

    Windows 上安装 MySQL Windows 上安装 MySQL 相对来说会较为简单,地那就链接 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql ...

  2. windows 系统如何安装 mysql 8.0.15 数据库?

    windows 系统如何安装 mysql 8.0.15 数据库? 1. 下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0. ...

  3. win10 安装mysql 8.0.18 解决Navicat初次连接报错

    win10 安装mysql 8.0.18 解决Navicat初次连接报错 win10 安装mysql 8.0.18-winx64 一,先去官网下载mysql 安装包 https://dev.mysql ...

  4. Ubuntu18 安装 MySQL 8.0.22

    Ubuntu18 安装 MySQL 8.0.22 网上教程都比旧,也不是第一次安装了,但依然还是花了比较多的时间,特此记录本次安装过程.因是安装完毕后回忆记录,或有错漏. 第一步: 下载 mysql ...

  5. 在 CentOS 7.5 64位上使用 yum 安装 MySQL 8.0

    前段时间在 CentOS 7.5 64位上安装 MySQL 8.0.查了些资料,在这里记录一下详细的安装和设置步骤. 一.安装 使用yum安装MySQL之前需要先下载对应的.rpm文件,下载方法: 去 ...

  6. centos 安装mysql密码修改后还是不能连接的原因

    centos 上安装mysql密码修改后还是不能连接出现错误:ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for ...

  7. 在Ubuntu 18.04 安装 MySQL 8.0

    在Ubuntu 18.04 安装 MySQL 8.0 ① 登入 mysql 官网,在官网中下载 deb 包,点击该链接,即可下载. https://dev.mysql.com/downloads/re ...

  8. ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题(装)

    ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题      https://blog.csdn.net/NeptuneClouds/article/details/80995 ...

  9. CentOS 7 下安装 MySQL 8.0

    前言 本篇文章主要介绍在 CentOS 7 环境下安装 MySQL 8.0. 正文 1. 配置yum源 首先在 https://dev.mysql.com/downloads/repo/yum/ 找到 ...

随机推荐

  1. C#自定义转换(implicit 或 explicit)

    C#的类型转换分为显式转换和隐式转换,显式转换需要自己声明转换类型,而隐式转换由编译器自动完成,无需我们声明,如: //long需要显式转换成int long l = 1L; int i = (int ...

  2. lscpu

    [root@kvm02 ~]# lscpu Architecture: x86_64     #cpu架构CPU op-mode(s): 32-bit, 64-bitByte Order: Littl ...

  3. centos6.5-rsync+inotify

    一.目的 通过监控192.168.3.10的目录,实现实时同步. 实验环境 centos1       192.168.3.10 centos2       192.168.3.11 二.配置 cen ...

  4. java运算符2

    续: 位运算符(<<,>>,>>>) 1.<<: 3<<2,二进制左移2位,右边用0补齐       3的二进制:00000000 0 ...

  5. Mysql字符串字段判断是否包含某个字符串的方法

    方法一:like SELECT * FROM 表名 WHERE 字段名 like "%字符%"; 方法二:find_in_set() 利用mysql 字符串函数 find_in_s ...

  6. vue - 搭建 webapp 自适应项目-使用 vant 组件库 并 可自动调节大小

    1.创建个vue 项目,这里不详细写怎么创建,参考 vue - 指令创建 vue工程 - 岑惜 - 博客园 (cnblogs.com) https://www.cnblogs.com/c2g52013 ...

  7. vue 自动生成菜单

    import constant from './const' export function getRouters (files) { let filenames = files.keys() let ...

  8. js复制文本到剪贴板

    execCommand是document的一个方法,返回值是布尔值(true,false) true表示操作被支持,false表示操作不被支持 此方法只针对于input和textarea,对里面的内容 ...

  9. 拉普拉斯平滑(Laplacian smoothing)

    概念 零概率问题:在计算事件的概率时,如果某个事件在观察样本库(训练集)中没有出现过,会导致该事件的概率结果是  $0$ .这是不合理的,不能因为一个事件没有观察到,就被认为该事件一定不可能发生(即该 ...

  10. 小程序onShareAppMessage有点迷

    小程序遇到的问题 起因 目前项目需求是分享时携带参数去进行裂变,但是在查看微信文档后发现有onShareAppMessage这个页面处理事件可以使用.事件可以使用return一个Object,用于自定 ...