MySQL root密码正确,却怎么也bai没法du从本地登陆MySQL
登陆提示
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
可能缘由是mysql库中bai的user表缺乏一个root指向host:localhost的数据项,只有一个root指向host:主机名的数据项,故怎么也没法利用root帐户登陆MySQL。
解决办法
一、 首先kill掉MySQL进程
二、 在启动mysql的参数中加入 --skip-grant-tables
这时无密码就能够登陆mysql了
三、 修复root帐户丢失的数据项
这里有两种解决方案:
第一种是由于root帐户初始的时候有3条记录,包含root对应localhost,hostname,127.0.0.1三条帐户数据,咱们能够update host为其余两项中一项为localhost便可。
第二种是直接insert一条记录,host为localhost便可
即便root的host包含了主机名,127.0.0.1那么依然是没法正常登陆的,这里必需要有localhost的host才行。
若是上面办法仍是没法正常登陆咱们可尝试另外一种办法
在本地用mysql命令直接回车能够进入mysql,可是里面只有test和information_schema数据库,没有mysql等数据库,使用use mysql报以下错:
mysql> use mysql
ERROR 1044 (42000): Access denied for user "@'localhost' to database 'mysql'
意思是说没有指定user,没有权限访问数据库mysql。
那么用root登陆呢,输入正确的密码报以下错:
[root@228827 ~]# mysql -uroot -p123456
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
密码正确的状况下,mysql数据库已经禁止了root用户在本地的登陆权限了
mysql