linux下允许Mysql远程访问

最近想要弄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,继续干活去。

你可能感兴趣的:(linux下允许Mysql远程访问)