ERROR 1045(28000):拒绝用户'root'访问@'%'

时间:2016-04-04 05:45:45

标签: mysql

我正在尝试运行

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

从远程服务器到localhost / phpmyadmin但获取ERROR 1045(28000):Access denied for user 'root'@'%' (using password: NO).

mysql> show grants;
+----------------------------------+
| Grants for root@%                |
+----------------------------------+
| GRANT USAGE ON *.* TO 'root'@'%' |
+----------------------------------+

如何解决此问题?我在互联网上经历了很多建议,但实际上无法弄明白。

2 个答案:

答案 0 :(得分:3)

我想,你忘了flush privileges

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. 以[{1}}:

    的身份登录mysql

    root

  4. 将新密码设为mysql -u root

    root

  5. 刷新权限。

    UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

  6. 最后,正常重启mysql。

答案 1 :(得分:0)

如果您有root凭据,请设置如下所述的权限。

将db。*的所有权限授予由'pass'标识的用户@'%';

由于