温馨提示:这篇文章已超过427天没有更新,请注意相关的内容是否还可用!
摘要:出现ERROR 1045错误,表示root用户无法访问localhost,这是由于密码问题导致的访问被拒绝。解决方案包括检查并确认用户名和密码是否正确,重置密码或赋予用户足够的权限。确保使用正确的身份验证方式,并检查数据库配置以允许root用户从localhost进行访问。
1、密码输入错误。
2、账户被锁定。
3、权限设置不当。
为了解决这个问题,您可以按照以下步骤操作:
问题描述
在使用命令行登录MySQL时遇到了错误,提示信息为“ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)”或表示输入了错误的密码。
出错原因
1、如果提示信息中显示“using password: NO”,则表示尝试登录MySQL时未输入密码。
2、如果提示信息中显示“using password: YES”,则表示输入了密码,但密码可能是错误的。
解决方案:针对MySQL 5.7版本
Step 1:跳过MySQL密码验证,找到MySQL的配置文件“my.ini”,在其中找到[mysqld]部分,并在其下添加“skip-grant-tables”后保存文件,my.ini文件可能在目录C:\ProgramData\MySQL下。
Step 2:重启MySQL服务。
Step 3:无密码登录MySQL,找到MySQL安装目录下的bin目录,在地址栏输入cmd后回车。
Step 4:将登录密码设置为空,在上一步的命令行中依次输入:① use mysql;② update user set authentication_string='' where user='root';③ quit;。
Step 5:更改登录密码,关闭上一个命令行后重启MySQL服务,打开新的cmd命令行,并输入“mysql -u root -p”后回车、回车(连续两次回车),然后刷新权限,输入“flush privileges;”后回车,最后输入“ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';”来重置密码。
Step 6:重新设置MySQL密码验证,删除之前添加的“skip-grant-tables”。
针对MySQL 8.x版本的解决方案
Step 1:停止MySQL服务。
Step 2:创建一个文本文件,如“mysql-init.txt”,里面包含重置密码的语句:“ALTER USER 'root'@'localhost' IDENTIFIED BY '你想设置的密码';”,将此文件放在容易访问的路径下,建议放在C盘根目录下。
Step 3:以管理员身份运行cmd,切换到MySQL 8.0程序所在的bin目录,输入特定命令来初始化并设置新密码,命令包括MySQL 8.0的服务路径、my.ini文件路径和mysql-init.txt文件路径,完成后关闭当前命令行并重新启动MySQL服务,之后删除mysql-init.txt文件并重新登录验证是否重置成功,详细的步骤和图解说明可以参考相关链接。
希望能帮助您解决问题!如有任何疑问或需要进一步的解释,请随时提问。
还没有评论,来说两句吧...