2013-03-11 58 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版本的默認值,因此只有在您確實要啓用遠程服務時,您才需要更改它(註釋上面的行)。