zoukankan      html  css  js  c++  java
  • 安装 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 userG; 
    *************************** 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'; 

    完结。

  • 相关阅读:
    spring core源码解读之ASM4用户手册翻译之一asm简介
    nginx启动,重启,关闭命令
    linux LVM分区查看dm设备
    jdbc 对sqlite的基本操作
    linux配置多个ip
    细说Linux下的虚拟主机那些事儿
    打造字符界面的多媒体Linux系统
    linux计划crontab
    因修改/etc/ssh权限导致的ssh不能连接异常解决方法
    Linux修改主机名
  • 原文地址:https://www.cnblogs.com/uoar/p/9328027.html
Copyright © 2011-2022 走看看