在Centos下安装了Mysql数据库,设置允许远程登录以后,远程登录成功,但本地登录失败,提示ERROR 1045 (28000):Access denied for user 'root'@'localhost' ,尝试了几种方法后,总结出了解决办法。
首先,出现这种情况可以当做root密码忘记来解决。方法如下:
1、修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables。如下图
2、保存配置文件后,重启MySQL服务 service mysqld restart
3、再次进入MySQL命令行 mysql -uroot -p,输入密码时直接回车,就会进入MySQL数据库了,这个时候按照常规流程修改 root密码即可。
4、密码修改完毕后,再按照步骤1中的流程,删掉配置文件中的那行,并且重启MySQL服务,新密码就生效了。
5、但是进入后mysql > use mysql;命令依然提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' ,这时,可以用SQLyog软件 远程连接数据库,打开mysql->user表,第四行:
将所有N都改成Y即可(第四行)
6、重启mysql即可。