修改权限时报:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor
3个回答
2017-02-24 · 知道合伙人互联网行家
关注
展开全部
第一步:以系统管理员身份登录到系统;
第二步:如果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";
如果是自己电脑多点尝试,总会发现有办法的,公司的电脑就不要试啦,搞坏数据库。有错请指正。哈哈!
第二步:如果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";
如果是自己电脑多点尝试,总会发现有办法的,公司的电脑就不要试啦,搞坏数据库。有错请指正。哈哈!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询