通过创建用户时指定主机或修改现有用户权限可限制 mysql 访问 IP。使用 CREATE USER ‘username’@’ 特定 IP’ 或 ’ 网段 %’ 限制来源,如 ’192.168.1.100’ 或 ’192.168.1.%’;对已存在用户可用 RENAME USER 更改主机范围,如将 ’%’ 改为 ’192.168.1.%’ 以限制内网访问;修改后执行 FLUSH PRIVILEGES 刷新权限,并通过select Host,User FROM mysql.user 验证设置;最后测试不同 IP 连接确保仅白名单可登录,操作时需保留管理员账户避免误锁。

在 MySQL 中限制用户只能从特定 IP 地址访问,主要通过创建用户时指定主机名或修改现有用户的主机权限来实现。这是 数据库 安全的重要一环,能有效防止非法 IP 连接。
使用 CREATE USER 指定允许的 IP
创建用户时,可以通过指定主机部分来限制该用户只能从某个 IP 或 IP 段登录。
- 只允许从本地访问:CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password‘;
- 只允许从特定 IP 访问:CREATE_USER ‘username’@’192.168.1.100’ IDENTIFIED BY ‘password’;
- 允许从某网段访问:CREATE USER ‘username’@’192.168.1.%’ IDENTIFIED BY ‘password’;
修改已有用户的访问 IP 限制
如果用户已经存在,可以通过 RENAME USER 或重新创建用户的方式更改其可登录的主机范围。
- 例如,将原允许从任意 IP 登录的用户限制为仅限内网:RENAME USER ‘username’@’%’ TO ‘username’@’192.168.1.%’;
- 也可以先 DROP USER 再重建更精确的权限。
刷新权限并验证配置
修改完成后必须执行权限刷新,使变更立即生效。
- 运行 FLUSH PRIVILEGES; 命令。
- 检查用户权限:SELECT Host,User FROM mysql.user WHERE User=’username’;
- 从不同 IP 尝试连接,确认只有白名单内的 IP 可以成功登录。
基本上就这些。只要控制好 @后面的主机部分,就能有效限制访问来源 IP。注意不要误锁自己,操作前确保有管理员账户可以从安全 IP 登录。不复杂但容易忽略。


