在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登录。不复杂但容易忽略。
