28000 mysql_MySQL:ERROR 1045 (28000)详解

1.问题说明

开源项目完工,需要做数据库对接,装了一个mysql 5.7数据库,因为不想占据电脑进程,手动终止了mysqld,终止以后在本地DOS登陆不上去,报错如下

C:\Users\Administrator>mysql -uroot -p

Enter password: ******

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

网上找了各种方法,发现千篇一律雷同,但都不能解决根本问题,自己参考了23篇博客尝试了各类方法并对其中好的方法提炼改变,抱着开源的死刑分享给大家,希望能帮到有需要的小伙伴

2.解决步骤

1,打开MySQL目录下的my.ini(路径如下图)文件(注:各类版本路径不同,博主5.7系列仅供参考),在文件的mysqld(如下下图所示)后方添加一行“skip-grant-tables”,保存并关闭文件。

2,重启MySQL服务。

3,通过命令行进入MySQL的BIN目录,输入“mysql -u root -p”(不输入密码),按下两个回车即可进入数据库(最好用管理员运行终端)。

4,执行“use mysql;”,进入mysql数据库。

5,修改数据库

MySQL>update user set host = '%' where user = 'root';

MySQL>select host, user from user;

MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION

6,予任何主机访问数据的权限

MySQL>FLUSH PRIVILEGES

3.完美解决

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.二类解决

申明:方法二博主并未测试,放在这里供有兴趣的小伙伴动手操作,遇到问题欢迎留言咨询

1、在控制台执行 mysql -u root -p mysql,系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台,这个命令的第一个mysql是执行命令,第二个mysql是系统数据名称,不一样的。

2、在mysql控制台执行

GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY ‘MyPassword' WITH GRANT OPTION;

3、在mysql控制台执行命令中的 ‘root’@’%’ 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;'MyPassword’是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,GRANT具体操作详情见官方doc:http://dev.mysql.com/doc/refman/5.1/en/grant.html

4、不放心的话可以在mysql控制台执行 select host, user from user; 检查一下用户表里的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值