CentOS系统下mysql绑定多个ip地址访问

msyql配置文件my.cnf中有选项bind-address=127.0.0.1,就是说mysql server监听的是本地发来的请求,如果开放任意主机都可以请求,则写为0.0.0.0,但是这样又不太安全。监听某ip,指定此ip地址即可,但是要保证mysql的user中有允许此ip访问,否则不能对数据库操作。那么是否可以在配置里只规定几个ip呢?

简单直接回答:不可能

请参考:#option_mysqld_bind-address

The MySQL server listens on a single network socket for TCP/IP connections. This socket is bound to a single address, but it is possible for an address to map onto multiple network interfaces. The default address is 0.0.0.0. To specify an address explicitly, use the ?bind-address=addr option at server startup, where addr is an IPv4 address or a host name. If addr is a host name, the server resolves the name to an IPv4 address and binds to that address. The server treats different types of addresses as follows:

If the address is 0.0.0.0, the server accepts TCP/IP connections on all server host IPv4 interfaces.
If the address is a “regular” IPv4 address (such as 127.0.0.1), the server accepts TCP/IP connections only for that particular IPv4 address.

但是有此需求,就会到访问控制,那么使用防火墙iptables可实现此效果

mysql-server为192.168.1.3,只允许192.168.1.4,  192.168.1.5,  192.168.1.6来访问3306端口

在my.cnf中

bind-address = 0.0.0.0

在访问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

保存防火墙规则
service iptables save

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

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

总结

虽然mysql没有直接绑定多个ip访问的,但是我们可以通过防火墙iptables可实现,也是一个不错的办法。

时间: 2024-09-15 14:23:21

CentOS系统下mysql绑定多个ip地址访问的相关文章

linux系统单网卡绑定多个IP地址

说明: 单网卡绑定两个IP地址,电信和联通,目的:是为了当电信出故障联通正常使用. 系 统 IP地址 子网掩码 网关 CentOS 6.3_64bit eth0:116.18.176.19 255.255.255.0 192.168.1.1 eth0:0:172.188.174.20 255.255.255.0 192.168.1.1 - - - 1.linux的网络设备的存储路径是/etc/sysconfig/network-scripts进入目录: [root@localhost ~]# c

Linux系统中单网卡绑定多个IP地址

单网卡配置单IP的命令  代码如下 复制代码 #ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up 说明:up是表示立即激活 单网卡配置多ip的方法就是使用命令 如果给单个网卡eth0配置多个ip地址如何操作呢,如果使用ifconfig命令,那么上边需要改动的地方只有eth0而已,将eth0改为eth0:x(x是0-255例如eth0:0或者eth0:1等等),eth0:x称为虚拟网络接口,是建立在网络接口上边.  代码如下 复制代码 #ifco

win7系统下通过绑定路由器和mac地址防止被他人蹭网的技巧

  1.首先win7用户打开开始菜单中的运行选项,在运行对话框中输入cmd,然后回车进入dos界面; 2.在弹出来的命令提示符窗口中输入命令ipcongfig /all 命令,注意有空格,然后回车,可以看到一系列信息,在这些信息中有一个physical address,后面跟着的就是本机mac地址; 3.最后登录到无线路由器,然后通过查看方式查看周围的mac地址,找到与自己本机对应的mac地址以后,选择绑定,这样就就完成所有操作了. ps:绑定本机mac地址和路由器以后,只有本地才可以使用无线网

Linux如何禁止特定ip地址访问

  Linux系统中,如果你需要禁止特定ip地址访问来保证系统的安全,只需通过操作iptalbes来实现,下面小编就给大家介绍下Linux如何禁止某个ip地址访问,感兴趣的朋友可以来了解下. 一.概述 这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问.这两个配置文件的格式如下: #服务进程名:主机列表:当规则匹配时可选的命令操作 server_name:hosts-list[:command] /etc/hosts.allow控制可以访问本机的IP地址,/et

linux CentOS 系统下如何将php和mysql命令加入到环境变量中_Linux

linux CentOS 系统下如何将php和mysql命令加入到环境变量中 在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行"php -v"命令查看当前php版本信息时时,则会提示命令不存在的错误,下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php.mysql和apache分别安装在/phpstudy/server/php/./phpstudy

CentOS系统下如何设置mysql每天自动备份_Mysql

前言 大家都知道数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦.通过本文来一起来看看CentOS系统下如何设置mysql每天自动备份吧. 步骤如下 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: filename=`date +%Y%m%d` /usr/bin/mysqldump -uroot -proot boss >>/home

Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因

原文:Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因 今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.4.6),然后在windows系统下访问此虚拟机的ip地址,却访问不了. 因为前段时间有知道过iptable的限制,所以在想是不是因为iptable限制了80端口呢! 所以在网上找了下iptable的命令,并且把tcp的80端口设置成允许任何IP都可以访问: iptables -I INPUT -p TCP

Ubuntu系统下MySQL的安装与配置

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Ubuntu系统下MySQL的安装与配置如下: 安装MySQL sudo apt-get install mysql-server 这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置. 配置MySQL 注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mys

CentOS 7下MySQL服务启动失败的快速解决方法_Mysql

今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe&qu