mysql ERROR 1045 (28000): 错误解决办法

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

基于windows,遇到则记下了,给出解决方法:如下

1:找到配置文件my.ini,之前一直用的是mysql5.5,my.ini就是在MySQL Server5.5下,如图:

现在我的mysql版本是5.7,则需要在安装磁盘上勾选隐藏的项目:如图:

进入ProgramData中-->MySQL-->MySQL Server 5.7,如图显示的my文件:(需要注意的是备份下配置文件,防止修改错误无法还原)

然后打开my,找到[mysqld],在[mysqld]下输入“skip-grant-tables”,如图:

然后保存关闭。

2:win+R输入“services.msc”进入服务

找到mysql的服务,我的名字是默认“MySQL57”,然后重启改服务:

3:重启完成之后运行cmd,输入mysql -uroot -p回车就行,提示你输入密码直接回车就能进入:如图(直接输入需要配置好path路径,如果重启失败,记得之前备份的my文件)

4:这时候进入到“mysql”这个库;如图:

5:给root用户设置新密码:如图:(新版本的语句是update user set authentication_string=password("123456") where user="root";  老版本的是update user set password=password("123456") where user="root";  新版本把password变成了authentication_string,如果在新版本中使用后面的sql则报 Unknown column 'password' in 'field list' 错,千万注意,密码用户随意,能记住就行):

6:刷新数据库,命令:flush privileges;

7:退出mysql,不建议直接退出,使用exit命令即可

8:一切完事之后,再修改之前的my文件,把刚才我们加入的“skip-grant-tables”删除,保存退出后再重启mysql服务即可,再次登录输入密码就没有问题了:

至此,解决了问题,其实也可以不用修改配置文件,可以在登录的时候直接跳过密码登录的,效果是一样的,在这就不赘述了,有什么不对的欢迎指正

原文地址:https://www.cnblogs.com/-qilin/p/11608748.html