Sequelize连接Mysql时出现'Client does not support authentication protocol requested by server; consider...

问题:

        我在学习node.js的时候,需要用Sequelize连接Mysql运行种子文件,在执行连接的过程中出现了




1.原因:

        主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。

打开mysql命令行输入如下命令查看,系统用户对应的认证插件:

命令进入MySQL内:


可以看到root用户使用的plugin是auth_socket,如果安装5.7并且没有为root用户提供密码,它将使用auth_socket插件。该插件不关心,也不需要密码。它只检查用户是否使用UNIX套接字进行连接,然后比较用户名。

            

        



解决方法:

         解决方法是将root的plugin由auth_socket改成mysql_native_password。 


这行代码有两层含义,第一:修改root的密码为'你想设置的MySQL登录密码',摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。

最后重新运行代码:


成功!!!

ps:参考navicat for mysql 链接时报错:1251-Client does not support authentication protocol requested by server

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容