我正在尝试运行
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'@'%' |
+----------------------------------+
如何解决此问题?我在互联网上经历了很多建议,但实际上无法弄明白。
答案 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
密码。所以尝试重置如下:
停止MySQL服务器。
sudo /etc/init.d/mysql stop
启动没有密码的mysql
sudo mysqld_safe --skip-grant-tables &
以[{1}}:
的身份登录mysql
root
将新密码设为mysql -u root
root
刷新权限。
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
最后,正常重启mysql。
答案 1 :(得分:0)
如果您有root凭据,请设置如下所述的权限。
将db。*的所有权限授予由'pass'标识的用户@'%';
由于