MySQL撤销外部连接的权限

时间:2016-01-11 22:18:38

标签: mysql privileges

我需要让远程用户访问MySQL数据库。我还需要限制他们对MySQL数据库表的权限。当前数据库包含约。 50多个表,而不是逐个表撤销权限,我试图给予用户无权限的访问权限,然后添加所需的权限。我做的事情似乎在以下情况下起作用:

  1. 我以root身份登录(通过SSH)
  2. 我使用“mysql -u username -p”登录 - 输入新创建的用户的密码。
  3. 此用户帐户尊重我设置的所有权限。但是,当此用户尝试通过其桌面客户端进行连接时 - 他们可以连接但无法查看数据库。使用“use databasename”时会出现此错误:

    错误代码:1044。用户'用户名'@'%'访问被拒绝到数据库'database_name'

    不确定这是否有帮助,但我正在使用Media Temple DV w / Plesk。我先添加了用户。然后我SSH并撤消所有权限。然后我添加了用户的权限,并命令“刷新权限”。什么都行不通。正如我所说,如果我通过命令行访问(在以root身份进行SSH连接之后),权​​限将得到尊重,我可以访问数据库 - 只是不能远程访问。

    非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

可能是允许连接的网络是localhost,但不是用户网络IP。 并检查最大连接数量。

答案 1 :(得分:0)

如果您以root身份通过SSH登录并且MySQL数据库位于同一台计算机上,那么我想如果您运行:

mysql -u username -p

您尝试以'用户名' @' localhost' 用户身份连接到MySQL。 如果要从此服务器外部连接到MySQL数据库,则需要:

  • 创建用户'用户名' @'%'允许使用'用户名'连接到MySQL来自任何地方('%')
  • 允许mysql服务器通过设置bind-address more details here
  • 从外部连接