在安装和配置Sequelize没问题后运行项目会出现这个数据库密码验证错误,但是我们在控制台中输入mysql -u root -p又可以登录mysq
Access denied for user 'root'@'localhost' (using password: YES), sleep 1 seconds to retry

原因是因为,电脑安装了多个版本的mysql数据库,在软件默认打开的以前版本的数据库,导致数据库用户和密码对不上。
解决步骤:
1.按下“win+r”,打开运行面板,输入“services.msc”,回车

2.打开本地服务,找到Mysql服务查看是否存在多个Mysql服务版本在运行(在这里笔者就有两个Mysql服务在运行)我们右键以前版本的MysqlL5_pn,点击停止或暂停服务。

3.这时候我们回到项目中,运行项目,这时候项目可能会报这个错误,这是一个权限与安全问题
Client does not support authentication protocol requested by server; consider upgrading MySQL client, sleep 1 seconds to retry

4.我们找到 mysql 的安装目录(笔者使用的 MySQL,mysql安装的默认路径为:C:\Program Files\MySQL\MySQL Server 8.0\bin),在导航栏输入“cmd”打开控制台


5.输入“mysql -u root -p”登录数据库

6.接下来把这两条代码逐条复制粘贴到控制台执行就可以了(你的数据库密码会被设置为“123456”)
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
flush privileges;
7.配置完我们重新运行egg项目即可使用Sequelize正常的连接mysql数据库
本文介绍了解决Sequelize连接MySQL时遇到的数据库密码验证错误及权限问题的方法,包括停止旧版MySQL服务、更改数据库密码等步骤。

1006

被折叠的 条评论
为什么被折叠?



