mysql如何设置仅允许特定内网访问_MySQL权限配置中的IP绑定

MySQL用户账号绑定IP需精确匹配host字段,如'api'@'192.168.5.11';不支持CIDR,%仅作字符通配;须删除冗余宽泛权限、检查bind-address与防火墙、区分localhost与127.0.0.1。mysql用户账号绑定具体IP地址MySQL的权限系统靠 user@host 这个组合来识别访问来源,host 部分不是"允许范围",而是"必须完全匹配"的主机标识。想只让内网某台机器连,就得把 host 写成它的实际IP,比如 'app-server'@'192.168.10.42'。常见错误是写成 'user'@'192.168.%' 或 'user'@'192.168.10.0/24' ------ MySQL不支持CIDR掩码,% 是通配符但只匹配任意字符(不含点号分隔的段数逻辑),192.168.% 实际会匹配 192.168.100.200 甚至 192.168x.y,非常危险。创建账号时直接指定IP:CREATE USER 'api'@'192.168.5.11' IDENTIFIED BY 'pwd123';已有账号需用 RENAME USER 或先 DROP USER 再重建,不能只改 host执行完记得 FLUSH PRIVILEGES;,否则变更不生效为什么GRANT后还是连不上?检查host字段是否被覆盖MySQL在权限匹配时,会按 user@host 字符串长度由长到短排序匹配,最长的优先。如果同时存在 'app'@'192.168.5.%' 和 'app'@'192.168.5.11',而前者权限更大,那么即使你从 192.168.5.11 连入,也会命中前者------导致你以为绑定了IP,实际走的是宽泛规则。查当前所有匹配该用户的记录:SELECT User, Host FROM mysql.user WHERE User = 'app';删掉冗余的宽泛条目,比如 'app'@'%' 或 'app'@'192.168.%'确认连接时客户端真实出口IP:容器里可能看到的是网关IP,K8s Pod可能经过Service代理,得看 SHOW PROCESSLIST; 里的 Host 列bind-address和防火墙是两层控制,缺一不可bind-address 是MySQL服务监听的网卡地址,不是权限控制手段。设成 127.0.0.1 就只能本地连;设成 0.0.0.0 才能接受远程连接------但此时仍受账号 host 限制。很多人只改权限却忘了放开监听,或者开了 0.0.0.0 却没配防火墙,结果外网也能扫到端口。 VWO 一个A/B测试工具

相关推荐
迷枫71215 分钟前
SQL性能排查记录
java·数据库·sql
Elastic 中国社区官方博客7 小时前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
青 春 记 忆8 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO38 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
保定公民9 小时前
达梦数据库存储过程中的数组类型详解:基础数组与记录数组的差异化应用
数据库·达梦·存储过程·达梦数据库·dm8·dm
梦Arrebol10 小时前
Redis 内容及相关实验
数据库·redis
临沂GEO10 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白10 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
Mr. zhihao11 小时前
死锁排查实战:JVM 唯一会“自动报案“的问题(场景 B5)
java·jvm·gc