解决初次登录MySQL出现ERROR 1045 (28000):Access denied for user 'root'@'localhost'问题

成功启动MySQL服务器后,网上很多帖子表示用命令行:mysql -uroot -p 回车,然后无视密码输入再回车,就可以成功登录。

然而,我在使用mysql-50.7.11版本,win10下运行时,并不成功,报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)。


解决过程如下:(%MYSQL_HOME%表示MySQL解压根目录)

1、结束所有的MySQL进程,包括mysql.exe 和mysqld.exe


2、命令行进入%MYSQL_HOME%\bin目录,输入mysqld --skip-grant-tables

此时命令行已无法再输入,另开一个命令行窗口。


3、命令行输入:mysql,即可登录数据库


4、此时要做的是修改密码,命令行输入:update mysql.user set authentication_string=password('123qwe') where user='root' and Host ='localhost‘;

即可修改成功。值得注意的是,密码名不叫password 而是坑爹的authentication_string!

此时再在任务管理器结束所有的MySQL进程,包括mysql.exe 和mysqld.exe,重新打开命令行窗口,启动mysql服务器,即可用新密码登录。


5、在登录,输入命令行,有个错误提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 它是在提示我们要重置密码。

回到%MSQL_HOME%\bin,输入下面的命令:mysqladmin -u root -p password(此处就是password单词,不是密码),然后根据返回的提示,先输入旧密码,然后输入新密码,确认即可。

Enter password: xxxxxx
New password: xxxxxx
Confirm new password: xxxxxx

这样就可以用新密码登录啦。



你可能感兴趣的:(解决初次登录MySQL出现ERROR 1045 (28000):Access denied for user 'root'@'localhost'问题)