问题:
我在学习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