首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误1045 (28000):用户'root'@'%‘的访问被拒绝

问错误1045 (28000):用户'root'@'%‘的访问被拒绝
EN

Stack Overflow用户
提问于 2016-04-04 05:45:44
回答 2查看 3.8K关注 0票数 2

我在试着跑

GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';

从远程服务器到本地主机/phpmyadmin,但得到错误1045 (28000):Access denied for user 'root'@'%' (using password: NO).

代码语言:javascript
复制
mysql> show grants;
+----------------------------------+
| Grants for root@%                |
+----------------------------------+
| GRANT USAGE ON *.* TO 'root'@'%' |
+----------------------------------+

我如何解决这个问题?我在互联网上经历了很多建议,但实际上还是找不到答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-04 07:07:16

我想,你忘了flush privileges了。

代码语言:javascript
复制
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' with GRANT OPTION;
mysql> FLUSH PRIVILEGES;

注意:我包括了with GRANT OPTION,因为正如医生所说:

GRANT OPTION特权使您能够授予其他用户或从其他用户中删除您自己拥有的特权。

编辑1:

根据注释,似乎您已经忘记了root密码。所以试着像这样重置:

  1. 停止MySQL服务器。 sudo /etc/init.d/mysql stop
  2. 不使用密码启动mysql sudo mysqld_safe --skip-grant-tables &
  3. 以rootmysql -u root身份登录到rootmysql -u root
  4. 将新密码设置为root UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
  5. 冲水特权。 FLUSH PRIVILEGES;
  6. 最后,正常重新启动mysql。
票数 3
EN

Stack Overflow用户

发布于 2016-04-04 07:02:07

如果您有根凭据,那么设置下面提到的特权。

将db.*上的所有权限授予由“pass”标识的用户@‘’%‘;

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36395296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档