Access denied for user ‘root’@‘localhost’ (using password: YES)问题解决
最近登录mysql报错:Access denied for user ‘root’@‘localhost’ (using password: YES),但是确认密码无误,毕竟足够简单。
然后按着跳过密码登录数据库然后再修改的方式,折腾了一上午没成功(T_T),原因是在my.ini添加mysqld --skip-grant-tables之后,net start mysql无法启动mysql服务。
最后查看了日志文件,发现有个报错(上次使用审计后,为防止审计插件被卸载添加的配置文件现在不能被识别),删了这个配置,再走一遍就成功了(有可能都不用了)。
这件事告诉我们哪怕是菜鸟在出问题之后的第一件事也该是看日志文件报错(这里我的日志文件默认存放在mysql文件夹下的data文件夹,后缀是.err)。毕竟错是同一个,原因千万种,你的错误总是那么独特。
最后贴一下解决办法
- 到安装的MySQL的目录下,找my.ini文件,在[mysqld]后添加skip-grant-tables(使用 set
password for设置密码无效,且此后登录无需键入密码)。 - 重启MySQL服务器。
- 登录mysql,键入mysql –uroot –p;直接回车(Enter)进入数据库。
- 执行“use mysql;”使用mysql数据库。
- 执行,
“update user set password=PASSWORD(“rootadmin”) where user=‘root’;”(修改root的密码,rootadmin记得改成自己的密码)。 - 打开MySQL目录下的my.ini文件,删除“skip-grant-tables”,保存并关闭文件。
- 重启MySQL服务。
- 再次登录即可。