美文网首页
2021-07-02Node连接mysql,报错Client d

2021-07-02Node连接mysql,报错Client d

作者: Kason晨 | 来源:发表于2021-07-02 14:18 被阅读0次

    报错语句和原因:

    报错语句:

    Client does not support authentication protocol requested by server
    //NodeJS MySQL客户端不支持身份验证协议
    

    原因:MySql 8.0换了新的身份验证插件(caching_sha2_password), 旧的身份验证插件为(mysql_native_password)。
    以默认创建的用户和密码都是这个加密方式。而npm包里的mysql模块还是使用原来的mysql_native_password加密方式,两者不互通,连接会报错。

    解决办法:

    将用户密码从caching_sha2_password加密方式改回的 mysql_native_password加密方式。

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456789';
    

    如上,将root用户的密码123456789的认证修改成mysql_native_password,之后再连接mysql就会成功。
    然后刷新缓存:

    flush privileges;
    

    注意点

    1,@后面的host要和账号的host对应,比如我的账号host是%,语句就要改成%。


    ALTER USER 'kason'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';
    

    2,报错:ERROR 1396 (HY000): Operation ALTER USER failed for 'xxx'@'xxx'
    其实没有进入mysql这个库,就去执行语句,自然是报错了。
    顺序如下:
    1,先进入mysql这个数据库。
    2,执行改密码验证方式(建议和原密码一致,会一起修改掉密码)。
    3,刷新缓存。

    use mysql;
    
    ALTER USER 'kason'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';
    
    flush privileges;
    

    亲测完美解决,撒花★,°:.☆( ̄▽ ̄)/$:.°★* 。。*

    相关文章

      网友评论

          本文标题:2021-07-02Node连接mysql,报错Client d

          本文链接:https://www.haomeiwen.com/subject/dpweultx.html