ddddd

MySQL删除远程授权

作者:程序员11 时间:2026-03-13 人气:5 QQ交流群\邮箱:1003265987@qq.com
MySQL删除远程授权
要展示的内容

要删除MySQL的远程授权,你可以通过以下几种方法来实现。我将按照安全性和推荐程度从高到低进行说明。

方法一:删除特定IP的授权(最推荐)

如果你只想删除特定IP地址(如 123.160.231.15)的远程访问权限,而保留其他访问方式:

  1. 登录MySQL服务器本机

    bash
    mysql -u root -p
  2. 查看当前用户权限情况

    sql
    SELECT host, user FROM mysql.user WHERE user = 'root';

    这会列出root用户允许连接的所有主机地址。

  3. 删除特定IP的授权记录

    sql
    DROP USER 'root'@'123.160.231.15';

    或者使用DELETE语句(更灵活):

    sql
    DELETE FROM mysql.user WHERE user = 'root' AND host = '123.160.231.15';
  4. 刷新权限

    sql
    FLUSH PRIVILEGES;

方法二:删除所有远程授权(只保留本地访问)

如果你想彻底禁止所有远程连接,只允许本地访问:

  1. 删除所有非本地的root用户记录

    sql
    -- 删除所有非localhost和127.0.0.1的root用户DELETE FROM mysql.user WHERE user = 'root' AND host NOT IN ('localhost', '127.0.0.1', '::1');-- 或者更谨慎的做法:先查看再删除SELECT host, user FROM mysql.user WHERE user = 'root' AND host != 'localhost';-- 确认无误后执行删除DELETE FROM mysql.user WHERE user = 'root' AND host != 'localhost';
  2. 确保至少有一个本地访问账号

    sql
    -- 如果localhost记录不存在,需要创建GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
  3. 刷新权限

    sql
    FLUSH PRIVILEGES;

方法三:修改用户权限而非删除(保留账号但限制访问)

如果你不想完全删除账号,只是想修改其权限:

  1. 撤销所有权限但不删除账号

    sql
    -- 先撤销该用户的所有权限REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'root'@'123.160.231.15';-- 然后可以保留账号但无权限,或者进一步删除-- 保留无权限账号(不推荐)-- 或者修改host为localhost(转换为本地账号)UPDATE mysql.user SET host = 'localhost' WHERE user = 'root' AND host = '123.160.231.15';
  2. 刷新权限

    sql
    FLUSH PRIVILEGES;

方法四:完全禁止远程连接(修改MySQL配置)

除了删除用户授权,还可以通过修改MySQL配置从根本上禁止远程连接:

  1. 修改MySQL配置文件(my.cnf 或 my.ini)

    ini
    [mysqld]# 将bind-address改为127.0.0.1,只监听本地连接bind-address = 127.0.0.1# 或者直接注释掉bind-address行(某些版本默认只监听本地)# bind-address = 0.0.0.0
  2. 重启MySQL服务

    bash
    # Linuxsudo systemctl restart mysql# 或sudo service mysql restart# Windowsnet stop mysql
    net start mysql

验证删除结果

删除授权后,可以通过以下方式验证:

  1. 检查用户表

    sql
    SELECT host, user FROM mysql.user;
  2. 尝试远程连接(从另一台机器)

    bash
    mysql -h your_server_ip -u root -p

    应该会收到类似错误:ERROR 1130 (HY000): Host 'your_ip' is not allowed to connect to this MySQL server

注意事项

⚠️ 重要提醒:

  • 谨慎操作:删除前请确认你还有其他的访问方式(如本地访问),否则可能会把自己锁在门外

  • 备份当前权限:操作前可以先备份mysql.user表

    sql
    -- 查看当前所有用户权限情况SELECT user, host FROM mysql.user ORDER BY user, host;
  • 如果有多个root用户:MySQL允许多个同名但不同host的root用户,删除时要注意区分

  • 业务影响:如果还有其他应用程序通过远程连接访问数据库,删除授权会导致它们无法连接

建议在维护窗口期进行操作,并确保有紧急回滚方案。如果不确定具体要删除哪个授权,可以先执行SELECT查询,确认无误后再进行删除操作。



链接:https://chat.deepseek.com/share/ob8x0f5zytp22cdat0

温馨提示:

欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。

MySQL删除远程授权---相关文章


评论区

ddddd

程序员-学习的网站-想学习编程的码农可以进来看看

首页

视频教程

购物车

我的订单