mysql数据的access denied for user rootlocalhost问题

来源:互联网 发布:js时间滑动选择插件 编辑:程序博客网 时间:2024/06/07 02:09

当我碰到这个问题的时候,我就百度了。百度里有好多种答案。貌似都是用dos界面下实现的。我当时就觉得头大,而且我也不知道哪个方法是正确的。。。但是问题没解决,只能硬着头皮看。。。

下面我借鉴的这篇博客,我照着弄了以后,是可以解决我的这个问题的,在此分享一下,给遇到同样问题的朋友来点肯定,不要放弃。。大笑

http://blog.sina.com.cn/s/blog_759a5a7c01017dj0.html


我在这稍微分析下里面的内容,只要你稍微了解点dos(windows有个命令提示符的黑框)操作。

我在这里引用一下他的内容:

问题重现(以下讨论范围仅限Windows环境)

1.(下面这个红色的不要管了,意思就是你进不去sqlyog一样的道理)

C:\AppServ\MySQL> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user
 'root'@'localhost' (using password: YES)

2.(下面的my.ini文件是在你的appserv安装文件夹下,有个MYSQL文件夹,然后这个文件夹下有这个my.ini文件,用记事本打开后,在最后面输入skip-grant-tables保存退出。重启mysql还有一种方法就是打开  服务,找到mysql的选项,右键重新启动就ok了

编辑mysql配置文件my.ini(不知道在哪请搜索),在[mysqld]这个条目下加入
  skip-grant-tables
保存退出后重启mysql

1.点击“开始”->“运行”(快捷键Win+R)。

  2.启动:输入 net stop mysql

  3.停止:输入 net start mysql


这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。按下面的流程走(红色部分为输入部分,粉红色的是执行后显示的代码不用输入):

1.经过mysql的重启,现在什么账号都可以进入sqlyog了,但是不是我们想要的效果,我们要的是有用户权限的那种,所以我们开始下面的操作。

打开密令提示符,就是前面说到的dos界面那个黑框(按住 键盘上的windows键,再按住键盘上的英文字母 R键,输入cmd,回车。)先输入,mysql,回车。好了,然后按照下满的输入就ok了!!

1.进入mysql数据库:

mysql> use mysql;
Database changed

2.给root用户设置新密码,蓝色部分自己输入:
mysql> update user set password=password("新密码") where user="root";
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

3.刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.退出mysql:
mysql> quit
Bye

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





0 0
原创粉丝点击