根MySQL用户访问数据库被拒绝

时间:2015-09-29 07:45:08

标签: mysql phpmyadmin

作为phpMyAdmin中的root MySQL用户,我跑了:

GRANT INSERT ON db.* TO 'db_user'@'localhost' 

并收到:

  

1044 - 用户访问被拒绝' db_user' @' localhost'到数据库' db'

我不明白为什么root无法将此权限授予db用户。

2 个答案:

答案 0 :(得分:2)

你不是以root身份运行;您以db_user身份登录。也许这是您的浏览器会话的问题。注销并以root身份再次登录,然后重新运行命令

https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html#error_er_dbaccess_denied_error

最坏的情况,请尝试其他浏览器。

答案 1 :(得分:2)

约翰,考虑到你得到的回应:

1044 - 用户'db_user'@'localhost'拒绝访问数据库'db'

显然,正如Devin所说,你执行的连接是“db_user”,而不是“root”用户。

尝试以root身份再次登录,并在连接时通过检查主phpmyadmin窗口右侧的“Database Server”信息,检查用户root是否确实已连接。你应该看到这样的东西:

  • 服务器:通过UNIX套接字的Localhost
  • 服务器类型:MySQL
  • 服务器版本:5.5.44(服务器版本/类型)
  • 协议版本:10
  • 用户:root @ localhost
  • 服务器字符集:UTF-8 Unicode(utf8)

检查当前用户执行的权限:

SHOW GRANTS;

我想你知道用户的权限可以是全局的或特定于数据库的(仅与选定的数据库有关)

无论如何,使用sql命令行感到不舒服,通过执行以下操作可以更轻松地授予所需的权限:

如果您要向用户授予一些全局权限,请执行以下操作:

  1. root
  2. 的身份从您的网络浏览器登录phpMyAdmin
  3. 单击“用户”选项卡(不要从菜单中选择任何数据库)
  4. 找到您要编辑的用户,然后点击“编辑权限”
  5. 选择您要授予的任何权限。
  6. 点击“开始”
  7. 仅限特定于数据库的权限,请按照上述步骤1-3进行操作,然后执行以下操作:

    1. 向下滚动一点,直到看到“特定于数据库的权限”标题。
    2. 从下拉菜单中,选择要为其添加用户权限的数据库,然后键入主机名(默认值为%for all) 3.单击“开始”
    3. 请务必验证标题是否为您要引用的特定数据库授予权限。 (例如编辑权限:用户'db_user'@'localhost' - 数据库数据库)

      1. 检查您要授予的权限
      2. 点击“开始”
      3. 我希望它对你有用。