登录mysql数据库出现报错信息ERROR 1045(28000)如下:
1
2
3
|
[root@RedHat-2 ~] # mysql -uroot -p fanshine
Enter password: ERROR 1045 (28000): Access denied for user 'root' @ 'localhost' (using password: YES)
|
分析:数据库存在空用户所致
解决:
-
停止mysql服务
1
|
[root@RedHat-2 ~] # service mysqld stop
|
2.进入mysql安全模式
1
|
[root@RedHat-2 ~] # mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
|
注:--skip-grant-tables 启动mysql时不启动grant-tables,授权表;--skip-networking关闭MySQL的TCP/IP连接方式,跳过网络
3.登录mysql数据库
1
|
[root@RedHat-2 ~] # mysql -u root mysql
|
4.
1
|
mysql> use mysql; |
5.查询
1
|
mysql> select user,host,password from user;
|
结果如下:
1
2
3
4
5
6
7
|
+------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | | localhost | root | localhost | *19A893FC29DBD6E2C8EAF9E248EA22AA1E1A24B7 |
| root | 127.0.0.1 | *19A893FC29DBD6E2C8EAF9E248EA22AA1E1A24B7 | +------+-----------+-------------------------------------------+ |
6.删掉空用户
1
|
mysql> delete from user where user= '' ;
|
7.退出
1
|
mysql> quit |
8.启动服务
1
|
[root@RedHat-2 ~] # service mysqld start
|
9.重新登录
1
2
|
[root@RedHat-2 ~] # mysql -u root -p
Enter password: |
1
|
输入密码登录即可。
|
本文转自 SoulMio 51CTO博客,原文链接:http://blog.51cto.com/bovin/1963178,如需转载请自行联系原作者