最近想要弄mysql集群的东西,一台机器是搞不了的,于是我开了多个虚拟机来配置。而linux下有很多的保护限制,我看了一下Debian系统,在防火墙的限制下,开放出去的端口真的很少很少,只有 80, 443,22 等端口。所以,我就准备将3306开放出去。
1. 打开 iptables文件
vim /etc/iptables.open.rules
可能文件名会有差异,大家慢慢找。不过一般来说,都是在/etc目录下的。
然后,往这个文件找个地方插入以下代码
-A INPUT -p tcp --dport 3306 -j ACCEPT
同理,可以将3306替换成其他端口,如6739(redis默认端口)
2. 修改mysql配置文件
配置文件大家自己找找,我的在 /usr/local/mysql/my.cnf 。打开
vim /usr/local/mysql/my.cnf
修改以下代码为
bind-address = 0.0.0.0
因为有的配置文件下是没有bind-address这个key的,这个时候就需要插入这串代码了
3. 修改数据库的用户信息
mysql默认可登录主机只有本地(如localhost、127.0.0.1等等),所以我们需呀新添加一个主机,固定主机或者任意主机都行,看个人需求咯。
连接数据库成功之后,选择mysql数据库
use mysql;
update user set Host='%' where Host=’127.0.0.1’;
FLUSH PRIVILEGES;
我直接修改127.0.0.1的主机为‘%’了,表示所有主机都能远程连接。当然,你可以新建一个用户,而不必去修改原有用户,我只是懒得去弄而已。
FLUSH PRIVILEGES命令表示将当前修改的东西立刻生效(不然需要重启mysqld进程)。
至此,mysql应该能被外网访问了。ok,继续干活去。