免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4753 | 回复: 7
打印 上一主题 下一主题

MySQL登录与协议、防火墙 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-17 09:49 |只看该作者 |倒序浏览
MySQL 5.0.33 + RedHat AS 4.0

有如下三种mysql登录方式:
mysql -ujiang -pgnaij
mysql -ujiang -pgnaij -h127.0.0.1
mysql -ujiang -pgnaij -h192.168.0.100  // 192.168.0.100是MySQL所在机器的IP地址
系统本地使用以上三种登录方式,它们之间是否有什么区别?
防火墙对它们是否有影响?
我后来又做了若干简单的测试,有一些体会,也有一些困惑。

MySQL本地登录,是通过套接字文件(mysql.sock),而不通过TCP协议,
所以很显然,登录方式"mysql -ujiang -pgnaij"肯定是通过mysql.sock文件,防火墙就不可能限制它。

对于登录方式"mysql -ujiang -pgnaij -h127.0.0.1",
我原以为这与"mysql -ujiang -pgnaij"的情况相同(都是通过mysql.sock文件登录),但从我的测试来看,这种看法应该是错误的。
因为当把mysql.scok删除后,使用这种方式仍然可以正常地登录。
那么看起来,这种方式应该是通过TCP?!
另,不需要新建用户jiang@127.0.0.1,而只需要新建用户jiang@localhost,就可以使用"mysql -ujiang -pgnaij -h127.0.0.1"进行登录;但反之,则不能。

对于登录方式"mysql -ujiang -pgnaij -h192.168.0.100",应该没有疑虑,肯定是通过TCP。

目前最主要的疑惑在于,
[1]对在"系统本地"使用TCP的登录方式("mysql -ujiang -pgnaij -h127.0.0.1"和"mysql -ujiang -pgnaij -h192.168.0.100"),
为什么当iptables封住3306端口之后,它们仍然能够正常地登录?
但如果是从"远程系统"上使用相同的登录命令"mysql -ujiang -pgnaij -h192.168.0.100",防火墙则能够产生阻碍作用。
这样看来,在本地系统中使用"mysql -ujiang -pgnaij -h192.168.0.100"或"mysql -ujiang -pgnaij -h127.0.0.1"登录,
并不是"远程登录"?!
[2]"mysql -ujiang -pgnaij -h127.0.0.1"的登录速度明显快于"mysql -ujiang -pgnaij -h192.168.0.100"(测试了很多次),
这仍然让人怀疑"mysql -ujiang -pgnaij -h127.0.0.1"并没有经过网卡。
但"mysql -ujiang -pgnaij -h192.168.0.100"也没有被防火墙阻隔,那应该也没有经过网卡啊?!

结论(猜测):
[1]我对防火墙的理解有误?即,防火墙先阻隔3306端口程序,能够通过防火墙的程序才能通过网卡。(难以想像)
[2]mysql即使在本地使用TCP协议,也不经过网卡?

请各位朋友不吝赐教!
谢谢!

[ 本帖最后由 jiangshachina 于 2007-8-17 09:52 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-08-17 10:57 |只看该作者
如果是通过本地登陆,只要你的iptables加上了 -i lo accept,所有的本地都会被接收,而且所有的防火墙,默认都是这样的,所以只要是本地地址,都不会被阻挡
你用iptables -L,看一下,都会有这条,如果你删了这条,你再试试看,能登陆么?

论坛徽章:
0
3 [报告]
发表于 2007-08-17 12:27 |只看该作者
> 如果是通过本地登陆,只要你的iptables加上了 -i lo accept,所有的本地都会被接收,而且所有的防火墙,默认都是这样的,所以只要
> 是本地地址,都不会被阻挡。你用iptables -L,看一下,都会有这条,如果你删了这条,你再试试看,能登陆么?
原来如此啊。

那为什么使用"mysql -ujiang -pgnaij -h127.0.0.1"的登录速度明显快于"mysql -ujiang -pgnaij -h192.168.0.100"呢?

论坛徽章:
0
4 [报告]
发表于 2007-08-17 22:10 |只看该作者
一个是lo虚拟设备,经过它的流量应该不高,另一个是物理设备,猜测是流量较大导致?

论坛徽章:
0
5 [报告]
发表于 2007-08-19 09:53 |只看该作者
> 一个是lo虚拟设备,经过它的流量应该不高,另一个是物理设备,猜测是流量较大导致
流量肯定很小,就连接了一个SSH。

另外,"mysql -ujiang -pgnaij"肯定是不经过网卡的,
那么"mysql -ujiang -pgnaij -h127.0.0.1"是否经过网卡?
从我做的测试来看,应该是经过网卡的,但127.0.0.1也应该是本地环路啊?!

[ 本帖最后由 jiangshachina 于 2007-8-19 10:01 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-08-19 12:00 |只看该作者
192.168.0.100
看看/etc/hosts下面有没有这个地址。 没有的话,要lookup,连接起来就会慢一点。

论坛徽章:
0
7 [报告]
发表于 2007-08-19 13:28 |只看该作者
原帖由 jiangshachina 于 2007-8-19 09:53 发表
> 一个是lo虚拟设备,经过它的流量应该不高,另一个是物理设备,猜测是流量较大导致
流量肯定很小,就连接了一个SSH。

另外,"mysql -ujiang -pgnaij"肯定是不经过网卡的,
那么"mysql -ujiang -pgnaij -h ...


你怎么测试得知是经过网卡的?列下证据

论坛徽章:
0
8 [报告]
发表于 2007-08-19 19:19 |只看该作者
192.168.0.100
看看/etc/hosts下面有没有这个地址。 没有的话,要lookup,连接起来就会慢一点。
确实没有。

你怎么测试得知是经过网卡的?列下证据
没有直接的证据,只是推测。
如果是local,那么应该是用mysql.sock文件吧。但用127.0.0.1时,却不是。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP