当前位置: 首页 > MySQL数据库

怎么解决MySQL中的ERROR 1045 (28000)错误问题

时间:2026-01-28 14:10:42

一、错误描述:
错误如标题:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)。我用root@localhost授权登陆,然后给其中
一个用户授权,然后报如上错误:
[mysql@centos6-clone ~]$ mysql -u root -p
Enter password: 
Your MySQL connection id is 2
Server version: 5.6.25-log MySQL Community Server (GPL)
mysql>  grant all  on *.* to 'fi'@'127.0.0.1' identified by "fi";
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
mysql> exit
Bye
按理来说,root@localhost是最高权限。居然不能给其他人授权。1045错误是授权拒绝。怎么办?
二、错误分析
查看下root权限:
mysql> show grants;
+----------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                            |
+----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E74858DB86EBA20BC33D0AECAE8A8108C56B17FA' |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION                                                         |
+----------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
我们看root@localhost 有权限:ALL PRIVILEGES,但是没有WITH GRANT OPTION 语句,就是别人授权的权限。所以,不能授权的原因是:
没有这个WITH GRANT OPTION 语句。
三、错误解决
知道原因了,解决问题就很简单了。用另外一个方式登录root@127.0.0.1,然后给root@localhost授权,这样root@localhost 就可以给其他用户
授权了。
[mysql@centos6-clone ~]$ mysql -uroot -p -h227.0.0.1
Enter password: 
mysql> SHOW GRANTS
    -> ;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@127.0.0.1                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY PASSWORD '*E74858DB86EBA20BC33D0AECAE8A8108C56B17FA' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>  GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E74858DB86EBA20BC33D0AECAE8A8108C56B17FA' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
[mysql@centos6-clone ~]$ mysql -uroot -p
Enter password: 
mysql> grant all  on *.* to 'fo'@'%' identified by "fo";
Query OK, 0 rows affected (0.00 sec)


上一篇:怎么解决MySQL中的[ERROR]XX is marked as crashed and should be repaired问题
下一篇:MySQL中的SELECT /*!40001 SQL_NO_CACHE */ * FROM分析
mysql
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素