Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL指定IP登录配置

MySQL指定IP登录配置方法的完整步骤

作者:djdlg2023

这篇文章主要介绍了MySQL指定IP登录配置方法的相关资料,包括设置指定IP授权、修改用户IP、配置防火墙限制、加强my.cnf安全及连接验证等步骤,需要的朋友可以参考下

一、用户授权指定IP访问

1.1 创建限定IP的用户

-- 允许192.168.1.100通过用户名user1和密码password123访问所有数据库
CREATE USER 'user1'@'192.168.1.100' IDENTIFIED BY 'password123';

-- 授权该用户对所有数据库的所有权限(生产环境建议按需授权)
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'192.168.1.100';

-- 刷新权限使设置立即生效
FLUSH PRIVILEGES;

1.2 限制IP网段访问

-- 允许192.168.1.%整个网段访问特定数据库
CREATE USER 'user2'@'192.168.1.%' IDENTIFIED BY 'password456';
GRANT SELECT, INSERT ON mydb.* TO 'user2'@'192.168.1.%';
FLUSH PRIVILEGES;

二、修改现有用户的访问IP

2.1 直接更新mysql.user表

-- 将用户user3的访问IP从原地址改为新地址
UPDATE mysql.user SET host='10.0.0.50' WHERE user='user3' AND host='192.168.2.100';
FLUSH PRIVILEGES;

2.2 使用RENAME USER命令

-- 更规范的修改方式(MySQL 5.0.2+支持)
RENAME USER 'user4'@'old_ip' TO 'user4'@'new_ip';

三、服务器端防火墙配置

3.1 Linux iptables规则示例

# 只允许特定IP访问MySQL默认端口(3306)
iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

# 保存规则(CentOS/RHEL)
service iptables save

3.2 查看当前连接IP

-- 在MySQL中查看当前连接的客户端IP
SELECT host FROM information_schema.processlist WHERE ID=CONNECTION_ID();

四、配置文件加强安全

4.1 修改my.cnf/my.ini

[mysqld]
# 只监听内网IP(替换为你的实际IP)
bind-address = 192.168.1.10

# 禁止域名解析(提高性能和安全)
skip-name-resolve
重要提示
修改配置后需重启MySQL服务:systemctl restart mysqld生产环境建议结合SSL加密连接
定期审计用户权限:SELECT user,host FROM mysql.user;

五、验证连接

# 从客户端测试指定IP是否可连接
mysql -u user1 -p -h 192.168.1.10

如果连接失败,请检查:

附:Mysql设置某个用户的ip访问权限

grant all on *.* to 'test'@'%' identified by 'pwd';
grant select,insert,update,delete on mydb.* to 'test'@'1.1.1.1' identified by 'pwd';
grant update(name,age) on mydb.stu to 'test'@'1.1.1.1' identified by 'pwd';

总结 

到此这篇关于MySQL指定IP登录配置方法的文章就介绍到这了,更多相关MySQL指定IP登录配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文