可通过MySQL用户权限、防火墙、TCP Wrappers或云安全组限制IP访问。1. 删除或不创建特定IP的用户账户;2. 使用iptables或firewalld封禁IP对3306端口的访问;3. 配置/etc/hosts.deny禁止IP连接mysqld;4. 云平台通过安全组拒绝指定IP入站。推荐“MySQL权限+防火墙”结合使用,提升安全性与响应效率。

MySQL 本身不直接提供“IP 黑名单”功能,但可以通过多种方式实现限制特定 IP 访问数据库的目的。以下是几种实用且常见的配置方法。
MySQL 通过 GRANT 和 REVOKE 命令管理用户权限,可以针对特定主机(IP)创建或删除用户,从而间接实现黑名单效果。
例如,若要禁止某个 IP(如 192.168.1.100)访问,确保不要为该 IP 创建用户账户:
-- 查看是否存在来自该 IP 的用户 SELECT User, Host FROM mysql.user WHERE Host = '192.168.1.100'; <p>-- 如果存在,删除该用户 DROP USER 'username'@'192.168.1.100';</p>
也可以显式地只允许白名单 IP,避免遗漏黑名单。
更高效的方式是在操作系统层面使用防火墙阻止非法 IP 连接 MySQL 端口(默认 3306)。
使用 iptables 封禁指定 IP:
# 禁止来自 192.168.1.100 的访问 iptables -A INPUT -s 192.168.1.100 -p tcp --dport 3306 -j DROP <h1>永久保存规则(CentOS/RHEL)</h1><p>service iptables save</p>
使用 firewalld(CentOS 7+):
# 封禁 IP firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" reject' <h1>重新加载配置</h1><p>firewall-cmd --reload</p>
部分 Linux 发行版支持 TCP Wrappers,可通过 /etc/hosts.deny 和 /etc/hosts.allow 控制服务访问。
编辑 /etc/hosts.deny 添加以下内容:
mysqld: 192.168.1.100
确保 MySQL 启动时链接了 libwrap 库,否则此方法无效。
如果你使用的是阿里云、腾讯云、AWS 等云服务,建议在安全组中直接屏蔽恶意 IP 的 3306 端口入站流量。这种方法最简单、最安全,无需登录服务器操作。
基本上就这些方法。推荐组合使用“MySQL 用户权限 + 防火墙”双重防护,既灵活又安全。单纯依赖 MySQL 权限可能不够及时,而防火墙能第一时间阻断连接。
以上就是mysql如何配置访问IP黑名单_mysql访问IP黑名单方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号