当我碰到这个问题的时候,我就百度了。百度里有好多种答案。貌似都是用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]这个条目下加入
保存退出后重启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,
Rows matched:
3.刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
4.退出mysql:
mysql> quit
Bye
改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql就可以了。