May 16 2008

数据库连接的 unix socket vs tcp connection

Category: 技术ssmax @ 11:16:28

抄录一下一些常识,貌似unix socket速度还是快一点的,个人认为。

1、空用户连接必须删除,否则会带来很多麻烦

2、在Unix上,localhost连接不使用TCP协议,使用的是Unix Socket协议,在这种情况下,你就算关闭3306端口,也不会影响程序访问数据库。例如你在PHP中访问数据库就是这种情况。但是Unix Socket连接吞吐量没有TCP连接大,建议用TCP连接。

例如本论坛原来就是使用Unix Socket,现在已经被我改为TCP了。

3、JDBC连接是基于TCP协议的,就算你写localhost,也肯定使用TCP协议,这需要你打开相应的访问权限。PHP只所以可以使用Unix Socket,是因为PHP是调用底层的MySQL C API访问数据库,不必通过网络端口调用。

4、安装MySQL之后第一件事情:

#mysql

connect mysql;

delete from user where user=”;

grant all mysql.* to root@”localhost” identified by “password” with grant option;

grant all mysql.* to root@”%” identified by “password” with grant option;

quit

这样就不必担心连接问题了。以后添加新的用户,照此办理。

另外在Linux上推荐使用iptables封掉3306端口,这样安全了,只允许本机程序访问,不允许外部访问。