在 Ubuntu-14.04 虚拟机上工作。
那里正在运行 MySQL 服务器。我注意到 root 用户没有 performance_schema 数据库的完全访问权限。
这让我想到了第一个问题:root 用户是否应该有权访问它?默认值是什么?没有访问权限是否表明数据库配置不好?
尝试通过给予 root 用户缺少的权限来调试这个问题,但并不想工作;
Access denied for 'root'@'localhost'
然后我注意到mysql-usertable中有2个名为“root”的用户:
标记为灰色的那个就是有问题的。我甚至不知道它的密码。它是怎么来的?我该如何解决这个问题?怎么会有两个用户名相同的用户?
更新:现在至少两个 root 用户都有相同的已知密码。
但我仍然收到访问被拒绝错误,这两个错误都存在。当我查看每个用户的授权时,很明显他们是两个不同的用户。但他们都有 GRANT 选项。
为什么我仍然遇到“拒绝访问”的情况?
答案1
根用户是否有权访问该内容?
你想要什么。作为 Ubuntu 用户,我自己永远不会使用“root”。这太明显了。出于同样的原因,我也不会使用我的系统用户名,而总是使用一个全新的名称。而且密码也不同于任何其他需要密码的程序。
默认是什么?
您在安装 MySQL 期间创建的用户。
它是怎么到那儿的?
您可能创建了它们。debian-sys-main
是由系统创建的。root
不是,但我不能 100% 确定“root”是否作为默认提供。
怎么会有两个用户名匹配的用户呢?
为什么不能有?用户名 root,主机为 localhost 和 127.0.0.1。您可以授予用户每个主机的访问权限。授予... localhost 和 127.0.0.1 是相同的(您/etc/hosts
应该有一条线将它们连接在一起)。
您还有 2 个“butler”、2 个“wordpres”和 2 个“redmine”。
我该如何解决这个问题?
什么问题?;)
答案2
登录 MySQL 并运行以下命令,这将为 root 用户提供完全权限。
授予所有权限。到 'root'@'localhost' 并带有授予选项;
刷新权限;
补充信息:
授予所有权限。至‘root’@‘localhost’,由‘admin’标识,授予选项;刷新权限;
注:admin是mysql的登录密码
完成上述过程后,如果您收到相同的错误,请检查 IP 127.0.0.1 的完整权限,因为 localhost 和 IP 表示同一台本地计算机。如果 IP 没有权限,那么这也可能是问题。尝试在命令中使用 % 为所有用户提供权限
授予所有权限。至‘root’@‘%’,由‘admin’标识,授予选项;刷新权限;
答案3
这是答案 ->https://serverfault.com/a/664829/331477
这是我使用的 MySQL 版本的一个错误。升级到最新的 MySQL 版本应该可以解决问题。
当我得到系统管理员的批准后,我就会这么做。