【问题标题】:User cannot see databases in mysql workbench用户在 mysql 工作台中看不到数据库
【发布时间】:2013-10-23 21:38:06
【问题描述】:

我正在尝试使用 this tutorial 来学习 Spring Roo。所以,我所做的是:

  • 进入mysql工作台
  • 创建一个名为“pizzashop”的新架构
  • 通过服务器管理帐户访问本地主机
  • 在“用户和权限”中创建一个名为“pizzashop”和密码“pizzashop”的新用户,并限制与匹配 % 的主机的连接

当我尝试使用此帐户连接到服务器时,我注意到它看不到任何数据库

我尝试在“模式特权”中明确创建一个条目,允许“披萨店”用户查看“披萨店”模式,但没有成功

希望你能在这里帮助我。不知道是Workbench问题还是mysql问题。

编辑> 向用户帐户添加了一个与另一个具有相同特征但使用 'localhost' 而不是 %

的条目

在架构权限中添加了一个条目,内容为 host:localhost schema:pizzashop 以及所有对象和 ddl 权限(这是我为 Pizzashop 用户唯一拥有的权限)

不过,当我使用用户 Pizzashop 连接到 localhost 时,没有出现任何架构

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

    此处提供的答案并没有为我解决问题。看了一圈,发现如下:

    为了让任何其他用户(默认 root 除外)能够看到 Workbench 中的架构,我必须为每个额外用户创建 3 次。

    Once for host = %
    Once for host = localhost
    Once for host = ::1
    

    我很想在 exussum 的回答下发表评论(非常感谢您分享这个解决方案的线索),但我加入了堆栈溢出分钟来分享这个解决方案并且没有足够的积分来发表评论。

    另外,我注意到,为了让授予的权限真正发挥作用(全局权限和每个数据库权限),我必须确保所有 3 个不同的用户+主机组合的所有权限都完全相同。

    我正在使用 WAMP 服务器 2.5,其中包括 mysql 5.6.17。 + 客户端是 Workbench 6.3

    【讨论】:

      【解决方案2】:

      这主要是由于权限问题。就我而言,由于某种原因,MySQL 文件夹是隐藏/只读的,因此 MySQL Workbench 无法访问模式面板上的相关数据库,尽管 SQL 查询成功。我通过取消隐藏 MySQL 文件夹解决了这个问题,然后所有数据库都成功显示在模式面板上。 Show databases 命令也可以显示数据库。

      【讨论】:

        【解决方案3】:

        在调查此问题一天后,我发现我必须创建 2 个具有相同名称但具有不同“来自主机”选项的用户。

        请查看 MySQL Workbench 用户和权限的外观。 enter image description here

        请不要忘记将架构权限分配给您想要的架构和“管理角色”选项卡中的“显示数据库”选项。这必须在两个用户中设置。

        我希望这会有所帮助 问候

        【讨论】:

          【解决方案4】:

          在这种情况下,使用 localhost 作为连接机器的附加用户根本没有帮助。这只是连接到服务器所需的东西(并且您的连接已经通过使用 % 用于“pizzashop”)。

          不确定您的情况出了什么问题,但我刚刚在 MySQL Workbench 6.0.7 中进行了测试(针对 5.6 服务器):

          1. 创建一个新用户“test”。无密码,无权限,标准身份验证。
          2. 创建了到同一服务器的新连接(实际上我复制了现有的连接,清除了密码并更改了用户名)。
          3. 打开这个新连接(其他连接可以保持打开状态)。
          4. 除非您启用了系统表,否则不会向“test”用户显示任何架构,在这种情况下,用户至少会看到“performance_schema”。
          5. 返回管理员连接并为单个架构添加架构权限(例如“测试”)。
          6. 关闭测试连接并重新打开它。现在除了“performance_schema”之外,测试用户还应该看到架构测试。
          7. 返回管理员连接并为“test”添加“SHOW DATABASES”全局权限。
          8. 关闭测试连接并重新打开它。当架构树展开时,“test”用户现在应该可以看到服务器中的所有架构,但看不到其中的对象(我们在第 5 点中为该用户启用的“test”架构除外)。

          如果这对您有用,那么将其应用于您自己的用户应该很容易。

          【讨论】:

          • 好的,所以我按照这些步骤进行操作,这基本上是我之前所做的,只是现在它起作用了。虽然不知道以前出了什么问题。谢谢
          【解决方案5】:

          听起来像是mysql的问题,您没有列出很多信息,但是您是否为该用户发出了授权命令?

          https://dev.mysql.com/doc/refman/5.1/en/grant.html

          grant 命令也可能很棘手,请参阅:

          MySQL: Grant **all** privileges on database

          了解更多信息。

          【讨论】:

          • 我真的不知道,因为我使用的是工作台,我不知道它使用了哪些命令,但我已经更新了更多信息。
          【解决方案6】:

          这是一个 MySQL 问题并且很常见,% 与 localhost 不匹配。为 user@localhost 添加一个具有相同权限的条目

          http://bugs.mysql.com/bug.php?id=69570

          【讨论】:

          • 这不是你说的那么普遍的问题。 % 确实也匹配 localhost,除非您在 Linux 上并通过套接字连接。
          • % 与我在 Linux 上的 MySQL 5.6.16 上通过基于 SSH 的普通 TCP/IP 的 127.0.0.1 不匹配。
          猜你喜欢
          • 2018-02-03
          • 1970-01-01
          • 2020-09-22
          • 1970-01-01
          • 1970-01-01
          • 2020-03-15
          • 2013-08-27
          • 2016-07-12
          • 1970-01-01
          相关资源
          最近更新 更多