今天在连接node与MySQL时出现:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)。这个错误一般是由于忘记密码导致,所以就需要无密码登录或者重置密码。
解决办法
1。首先重启mysql,命令如下:
net stop mysql
net start mysql
(必须在bin目录下以管理员身份运行,不然就会像下面一样报错。)
2.此时输入mysql -u root -p,然后输入密码,检查看之前是否是因为输错密码而报错,如果显示
D:\phpstudy_pro\Extensions\MySQL5.7.26\bin>mysql -u root -p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
则证明已经成功。
3.如果失败,在如下目录下找到my.ini文件,然后我们在[mysqlid] 下面添加一句 skip-grant-tables,这是为了实现无密码登录。保存之后必须重启mysql(命令是net stop mysql然后net start mysql)。
4.输入mysql -u root -p 回车确定。就可以实现无密码登陆了系统。
然后输入set password for ‘root’@‘localhost’=password(‘123456’);
如果出现错误 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement ;则需要输入flush privileges,然后重新输入set password for ‘root’@‘localhost’=password(‘123456’);
5.成功修改密码之后需要删除my.ini文件下添加的 skip-grant-tables,注意每次更改配置文件后都要按照上面提到的方法重启mysql。