关键词 : mysql密码正确的情况下报错,ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) ,远程可以密码可以连接
第一次遇到这么奇怪的问题,我先描述下。
我在自己的电脑上运行了nvaicat远程连接腾讯云上的mysql服务器,然后可以连接上。
用secureCRT连接上服务器,运行 # mysql -u root -p 然后输入密码 正确的密码: "12345678",结果提示失败。
刚开始的时候我以为是连接工具的问题,尝试了很多连接工具,都是这样。之后我也怀疑密码太特殊了?改了新密码,同样也是自己电脑能访问,linux本地访问不到。
回想之前安装的时候,那时候是本地linux能连,但是远程不能连。
当时的解决方案是:
use mysql;
update user set 。。。。 ,把host 改成了 %
用自己电脑上的navicat 查看mysql.user 表。
发现有些问题,localhost那栏 后面的权限都是N。
接下来就是解决方法了:
直接修改名字,我这里是加了temp后缀。然后上linux 重启 # service mysqld restart
再从执行登录操作,输入密码,成功登录。
原理:
出现这种错误的原因我也不知道,百度了都是修改密码解决的。
解决原理的话,我也不清楚,但是我猜测,可能是因为有localhost这个项,没有走 “%” 这项,所以一直没有权限。
如果您有更好的解决方法或者了解出现的原因,请给我留言,谢谢!