Mysql登录提示1045 error:access denied for user 'root'@'localhost

时间:2021-11-12 20:36:13

        在win7中安装了appserv打算玩一下php,后来太忙了,一直没理它,等到现在要用时发现忘了mysql的密码,于是乎想要重置,就打开了appserv下的Reset Mysql root Password结果提示缺少php_mbstring.dll,网上搜索后发现原来是php_exif.dll需要使用php_mbstring.dll,但是在php.ini中,php_exif.dll的加载在php_mbstring.dll之前,就产生了这样的错误,在appserv下Configuration Server中用PHP Edit the php.ini Configuration File打开php.ini文件,将其中的php_exif.dll放在php_mbstring.dll之后即可。

        完成了这个之后发现登录phpmyadmin有 异样,首先忘了mysql密码,所以根据网上的资料,用用户名为admin,密码为空登录,竟然真的可以,但是却缺少创建数据库的权限,于是想登入mysql command line client去查看异样,就发现了如标题的错误,并且这个command line还是一闪而过,让人卵伤得……在windows中的cmd中用命令mysql -u root -p,输入密码,终于不一闪而过了,上面的那个错误就露出了真面目,查了一下,csdn上各种大神专家各种解答,看起来好复杂,我比较笨,对复杂的东西一向接受不了,于是乎继续搜,终于发现了其中一个相对简单的解决方法:http://huangyifa163.blog.163.com/blog/static/262875752011127102215790/

        该方法估计是在linux或者mac中的,不过问题不大。

       首先,要停止mysql,使用上面方法中的命令mysql stop发现是不行的,于是只好硬从windows中的管理中的服务中,找到mysql,将它停止了。

       接着,在windows的cmd中进入到mysql中:mysql -u root mysql,当然,我没有运行命令mysqld_safe --user=mysql --skip-grant-tables --skip-networking,因为发现没有mysqld_safe这个命令或者批处理,我很怀疑作者mysqld_safe写错了,另外最后的那个&也是黏贴错误。总而言之,我使用mysql -u root mysql就直接进去了。

       再接着,UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost'; 注意最后的;号,还有('newpassword')中的newpassword就是你要设置的新密码了,别搞错。

       最后,FLUSH PRIVILEGES;和quit  ,完成新密码设置,再从windows管理的服务中启动mysql。然后就可以进入mysql command line client了,并且在phpmyadmin用用户名root和你新建的密码可以登入,并且也有权限了。