【问题标题】:Block Host Name in Mysql在 Mysql 中阻止主机名
【发布时间】:2014-08-06 07:11:06
【问题描述】:

我想阻止远程服务器访问 MySQL,并希望得到此错误“由于许多连接错误而被阻止;使用 'mysqladmin flush-hosts' 解除阻止”。

我如何在 MySQL 中以这种方式阻止用户?我是否需要多次访问服务器以从远程服务器连接,直到它被阻止?或者可以做什么。

在这种情况下,当用户被阻止时,MySQL数据库中的哪个参数字段会改变?

谁能帮忙?

【问题讨论】:

    标签: mysql block remote-access remote-server mysqladmin


    【解决方案1】:

    您可以撤销用户从特定 IP 连接的权限。

    REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'123.123.123.123';
    

    DELETE FROM mysql.user WHERE User='USERNAME' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
    

    如果您将权限降低到 USERNAME@localhost,则只能进行本地连接。 只要确保您实际上至少有一个本地条目(用户名@localhost、用户名@127.0.0.1、用户名@[本地 IPv6]),否则您将无法再次登录。

    确保在通过调用更改权限后应用权限

    FLUSH PRIVILEGES;
    

    要限制每个 user@host 组合的连接数量,您可以向 GRANT 命令添加其他设置:

    GRANT ALL ON customer.* TO 'USERNAME'@'123.123.123.123'
         WITH MAX_QUERIES_PER_HOUR 0
              MAX_UPDATES_PER_HOUR 0
              MAX_CONNECTIONS_PER_HOUR 0
              MAX_USER_CONNECTIONS 0;
    

    更多信息可以在mysql网页上找到(Setting Account Resource LimitsGRANT Syntax

    【讨论】:

    • 感谢您的回复。我之前尝试过撤销。但这无济于事。当我尝试连接远程服务器mysql时,它给了我这个错误“用户'用户名'@'IP地址'对数据库'数据库名称'的访问被拒绝”。我希望用户收到此错误:“由于许多连接错误而被阻止;使用 'mysqladmin flush-hosts' 解除阻止”
    • 我用你想要的设置更新了答案:MAX_USER_CONNECTIONS。但是,我想知道您为什么要这样做,它使用错误的工具解决了任务
    猜你喜欢
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 2022-01-18
    • 2018-02-13
    • 2013-04-19
    • 2018-07-30
    • 2019-11-17
    • 1970-01-01
    相关资源
    最近更新 更多