mysql实现绑定多个ip

红太狼 2021-06-24 14:34 562阅读 0赞
  1. my.cnf中有选项bind-address=127.0.0.1,是说mysql server监听的是本地发来的请求,如果是任意主机都可以请求,则写为0.0.0.0,但是这样又不太安全。监听某ip,指定此ip地址即可,但是要保证mysqluser中有允许此ip访问,否则不能对数据库操作。那么是否可以在配置里只规定几个ip呢?

简单直接回答:不可能,mysql官方明确指出bind-adress只允许制定一个参数

但是有此需求,就会到访问控制,那么使用防火墙iptables可实现此效果
mysql-server为192.168.1.3,只允许192.168.1.4, 192.168.1.5, 192.168.1.6来访问3306端口

1、在my.cnf中
bind-address = 0.0.0.0

2、在访问3306端口的主机中,只允许192.168.1.4-6,其他ip一律DROP掉
/sbin/iptables -A INPUT -p tcp -s 192.168.1.4 —dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.1.5 —dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.1.6 —dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp —dport 3306 -j DROP

/sbin/iptables -A INPUT -p tcp —dport 3306 ! -s 192.168.1.4 -j DROP
/sbin/iptables -A INPUT -p tcp —dport 3306 ! -s 192.168.1.5 -j DROP
/sbin/iptables -A INPUT -p tcp —dport 3306 ! -s 192.168.1.6 -j DROP

3、保存防火墙规则
service iptables save

4、查看INPUT链包含3306的规则
echo -e “target prot opt source destination\n$(iptables -L INPUT -n | grep 3306)”

这样就实现了mysql只允许指定ip访问。

发表评论

表情:
评论列表 (有 0 条评论,562人围观)

还没有评论,来说两句吧...

相关阅读