通过创建用户时指定主机或修改现有用户权限可限制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登录。不复杂但容易忽略。


