2013-03-11 55 views
6

我希望我的MySQL服务器只使用Unix套接字,而忽略了TCP的网络,所以我说这行我的配置/etc/my.cnf强制MySQL只使用Unix套接字

skip-networking 

netstat告诉我,MySQL的仍然使用TCP端口3306:

# netstat -tl | grep mys 
tcp  0  0 *:mysql  *:*       LISTEN 
+0

你为什么要这样?你能解释它背后的原因吗?如果这是为了安全(没有远程访问)原因,你可以通过注释掉my.cnf中的bind-address指令来允许本地主机访问,即有bind-address = 127.0.0.1那里有 – arielf 2013-03-11 00:48:54

+3

我不需要任何远程访问。 – SIFE 2013-03-11 00:54:46

+0

仅使用套接字是否具有性能优势? – 2014-10-01 22:42:06

回答

2

结果我保存文件为my.conf,应该是my.cnf,这就是服务器只能加载并使用默认配置的原因。

-1

您所使用的参数似乎是正确的,如果你想限制你的MySQL服务器只对本地连接的连接,我要补充这行到/ etc /我的。 cnf

[mysqld] 
bind-address=127.0.0.1 

不要忘了重新启动mysqld服务为要激活的配置更改

  • 删除了使用跳组网,不需要
+1

'skip-networking'会禁用服务器上的tcp功能,所以即使添加'bind-address',这个指令也会被'skip-networking'覆盖。 – SIFE 2013-03-19 04:58:56

+0

@SIFE是正确的。根据[手册](https://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_skip-)指定'skip-networking'时,'bind-address'变为noop。所有与mysqld的交互都必须使用命名管道或共享内存(在Windows上)或Unix套接字文件(在Unix上)。这个选项强烈建议只允许本地客户使用的系统。“ – 2015-07-30 18:02:09

3

。如果原因是在[MySQL的

bind-address = 127.0.0.1 

:防止远程访问,您可以通过有实现自己的目标d]您的my.cnf部分并重新启动mysqld。

这确保mysqld将只允许本地连接。

为了防止远程访问跳过联网不是唯一的选择,因为在(2013年)的my.cnf评论说:

# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 

编辑: 安全版(与上面的绑定地址一样)已经是最近(截至2013年)Ubuntu版本的默认值,因此只有在您确实要启用远程服务时,您才需要更改它(注释上面的行)。