MySQL删除远程授权
作者:程序员11 时间:2026-03-13 人气:5 QQ交流群\邮箱:1003265987@qq.com要删除MySQL的远程授权,你可以通过以下几种方法来实现。我将按照安全性和推荐程度从高到低进行说明。
方法一:删除特定IP的授权(最推荐)
如果你只想删除特定IP地址(如 123.160.231.15)的远程访问权限,而保留其他访问方式:
登录MySQL服务器本机
mysql -u root -p
查看当前用户权限情况
SELECT host, user FROM mysql.user WHERE user = 'root';
这会列出root用户允许连接的所有主机地址。
删除特定IP的授权记录
DROP USER 'root'@'123.160.231.15';
或者使用DELETE语句(更灵活):
DELETE FROM mysql.user WHERE user = 'root' AND host = '123.160.231.15';
刷新权限
FLUSH PRIVILEGES;
方法二:删除所有远程授权(只保留本地访问)
如果你想彻底禁止所有远程连接,只允许本地访问:
删除所有非本地的root用户记录
-- 删除所有非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';确保至少有一个本地访问账号
-- 如果localhost记录不存在,需要创建GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
刷新权限
FLUSH PRIVILEGES;
方法三:修改用户权限而非删除(保留账号但限制访问)
如果你不想完全删除账号,只是想修改其权限:
撤销所有权限但不删除账号
-- 先撤销该用户的所有权限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';
刷新权限
FLUSH PRIVILEGES;
方法四:完全禁止远程连接(修改MySQL配置)
除了删除用户授权,还可以通过修改MySQL配置从根本上禁止远程连接:
修改MySQL配置文件(my.cnf 或 my.ini)
[mysqld]# 将bind-address改为127.0.0.1,只监听本地连接bind-address = 127.0.0.1# 或者直接注释掉bind-address行(某些版本默认只监听本地)# bind-address = 0.0.0.0
重启MySQL服务
# Linuxsudo systemctl restart mysql# 或sudo service mysql restart# Windowsnet stop mysql net start mysql
验证删除结果
删除授权后,可以通过以下方式验证:
检查用户表
SELECT host, user FROM mysql.user;
尝试远程连接(从另一台机器)
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表
-- 查看当前所有用户权限情况SELECT user, host FROM mysql.user ORDER BY user, host;
如果有多个root用户:MySQL允许多个同名但不同host的root用户,删除时要注意区分
业务影响:如果还有其他应用程序通过远程连接访问数据库,删除授权会导致它们无法连接
建议在维护窗口期进行操作,并确保有紧急回滚方案。如果不确定具体要删除哪个授权,可以先执行SELECT查询,确认无误后再进行删除操作。
欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。
