MySQL在使用root密码登陆报 1045
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
错误可能原因:
1、有空用户的现象,MySQL官方的BUG,优先匹配到空用户
2、权限错误
一、空用户问题解决方法
先修改下mysql的配置文件,设置免密钥登陆:
skip-grant-tables
然后重新启动mysql,
/etc/init.d/mysqld restart
在mysql命令行中执行下面命令:
USE mysql;
Delete FROM user Where User='' and Host='localhost';
FLUSH PRIVILEGES;
执行完后将刚才添加的
skip-grant-tables 注释 然后重新启动mysql
现在再用账号密码登陆就可以登陆进去了。
二、MySQL root权限导致的无法登录
1、同样是修改成免密码登录的方式:
2、重启数据库:
/etc/init.d/mysqld restart
3、更改root权限:
update mysql.user set password=password('root 用户密码') where user='root' and host='localhost';
FLUSH PRIVILEGES;
4、注销跳过密码登录的配置
然后重启mysql数据库,使用root登录就正常了
注意,在修改完免密码登录后,一定要将免密码登录的配置注释掉,否则会出现不安的操作