修改权限时报:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor

liunx下该如何解决... liunx 下该如何解决 展开
 我来答
西西哩的小马甲
2018-04-13 · TA获得超过10.1万个赞
知道大有可为答主
回答量:39
采纳率:100%
帮助的人:1.7万
展开全部

方法如下:

1、找到配置文件my.ini  ,然后将其打开,可以选择用NotePadd++打开。

2、打开后,搜索mysqld关键字,找到后,在mysqld下面添加skip-grant-tables,保存退出。

3、重启mysql服务。在任何路径目录下,都可以关闭/重启mysql的服务呢。

4、进入数据库,重设置密码。

5、密码重设置成功,改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了。

6、重启mysql服务,并登录mysql用户,用户是root,密码是rootroot。

DoramiHe
2017-02-24 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25335 获赞数:59534
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
第一步:以系统管理员身份登录到系统;
第二步:如果MySQL服务器正在运行,停止它。 方法有两个,1:开始菜单->控制面板->管理工具->服务,找到Mysql服务停掉。2:右击我的电脑->管理->服务与应用->服务,找到mysql服务停掉。3:Ctrl+Alt+Delete->启动服务管理器->服务,找到mysql服务停掉。(这一步这么简单,我写的太详细,不应该不应该啊!浪费电平啊!)
第三步:选择一个硬盘最外面创建一个txt文件,为什么呢?因为这个txt只是辅佐你解决掉这个错误,解决掉错误它的光荣任务就完成了,就可以壮烈牺牲了,不要感到可惜,它没有生命的。比如放在:C:\mysql-init.txt。(这个txt最好还是取这个名字,不要个性化,其他不知道行不行,我也没有实验过,这个名字正好是Mysql的进程名字,不要问为什么是这个名字,计算机这东西在中国是不能问为什么的,知道是这样就行了。)在里面输入一句话:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
后面的那串数字是我重新设置的密码,因为我MyEclipse的项目里面默认的都是这个密码,你们改回自己想要的密码就行了。
第四步:进入DOS命令提示:开始菜单->运行-> cmd ,然后cd到你安装Mysql的目录下,当然我的Mysql埋的比较比较深,C:\Program Files\MySQL\MySQL Server 5.0\bin>。如果你将MySQL安装到了另一位置,请对下述命令进行相应的调整。 在DOS命令提示符下,执行命令:
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqld-nt --init-file=C:\mysql-init.txt 。
第五步:启动服务,步骤和第二步一样。在服务器启动时,执行由“--init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:\mysql-init.txt。这个时候这个txt的任务完成了。如果起动MySQL服务器出错,把进程mysqld-nt.exe关闭(第二步的第三种方法可以找到进程关掉)。然后重启它,OK。
最后就可以用你在第三步设置的密码>mysql -uroot -p 去链接Mysql数据库了。
但是你会问难道我每次改密码都要弄出这个错来,还要牺牲一个txt才能改密码成功吗?就没有一条指令搞定改密码这种简单的事情,当然不是啦。具体方法就是你用这条指令>mysqladmin -uroot -p123456 password abc123;改密码的时候,要用这个指令>mysql -uroot -p123456登录,而不是换行输进密码,登录之后再在mysql>操作符后面加上一句给权限的语句(很多资料并没有表述明白下面这条指令什么什么时候输入,搞得很多人以为是在改完密码过后立刻输入,就会有报错声音):
grant all on mysql.* to 'root'@'localhost' identified by 'password';
最后那个password即是你要修改的root用户的密码 。我这里是“123456”这个时候下次登录才可以用>mysql -uroot -p。Enter Password:123456登录数据库。

其实以上都是废话来,如果你想改密码,直接用原来的密码登录过后,用下面任何一条指令都可以改密码,但是要重复运行同一条指令两次,第一次我把它当作改密码,第二次当作授予权限,这样一点事都没有,你可以这样子>mysql -uroot -p123456登录,还可以这样子>mysql -uroot -p。Enter Password:123456登录。其中newpassword就是新密码。
grant all on mydb.* to NewUserName@HostName identified by "newpassword" ;
grant usage on *.* to NewUserName@HostName identified by "newpassword";
grant select,insert,update on mydb.* to NewUserName@HostName identified by "newpassword";
grant update,delete on mydb.TestTable to NewUserName@HostName identified by "newpassword";
即是:
grant all onmysql.* to 'root'@'localhost' identified by "newpassword" ;
grant usage on *.* to 'root'@'localhost' identified by "newpassword";
grant select,insert,update on mydb.* to 'root'@'localhost' identified by "newpassword";
grant update,delete on mydb.TestTable to 'root'@'localhost' identified by "newpassword";
如果是自己电脑多点尝试,总会发现有办法的,公司的电脑就不要试啦,搞坏数据库。有错请指正。哈哈!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyer209
2019-08-21
知道答主
回答量:1
采纳率:0%
帮助的人:692
展开全部
密码错误,重设密码就OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式