将MySQL服务绑定到固定的IP地址上

近期将在线服务迁移到了阿里云。

    阿里云提供了云盾,安全上确实比其他的云服务有了很大的提高,遗憾的是,没有防火墙,还是需要自己设置。阿里云的虚拟机跑在XEN上,直接使用YUM安装iptables有点问题,暂时先不解决。还是先把mysql绑定到127.0.0.1上,避免不需要对外的mysql端口暴露在公网被人穷举。
    
    mysqld绑定到固定的IP地址上,有两种方式:一种方式是直接在命令行使用mysqld_safe启动;一种是使用服务命令/etc/init.d/mysqld来启动。其实原理是一样的。
 
    命令行启动时,使用/usr/local/mysql/bin/mysqld_safe --bind-address=127.0.0.1 即可。
    如果需要修改服务脚本,编辑/etc/init.d/mysqld,找到第330行,将此内容:
 
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args
 
修改为:
 
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file --bind-address=127.0.0.1$other_args
 
即可。
 
    启动服务后,使用netstat -nat|grep 3306可以看到服务只绑定在127.0.0.1上。
 
    注意,上述方法并不能够将MYSQLD绑定到服务器上的多个IP地址上。--bind-address=后面,仅能跟随一个地址。多个--bind-address参数出现时,最后一个参数生效。据我所知(参考mysql文档),mysqld只能绑定一个IP地址,或者绑定本机全部IP地址,无法选择性的绑定到本机的多个IP地址。
posted @ 2018-01-19 13:41  追忆丶年华  阅读(1618)  评论(0编辑  收藏  举报