我希望我的MySQL服務器只使用Unix套接字,而忽略了TCP的網絡,所以我說這行我的配置/etc/my.cnf
:強制MySQL只使用Unix套接字
skip-networking
但netstat
告訴我,MySQL的仍然使用TCP端口3306:
# netstat -tl | grep mys
tcp 0 0 *:mysql *:* LISTEN
我希望我的MySQL服務器只使用Unix套接字,而忽略了TCP的網絡,所以我說這行我的配置/etc/my.cnf
:強制MySQL只使用Unix套接字
skip-networking
但netstat
告訴我,MySQL的仍然使用TCP端口3306:
# netstat -tl | grep mys
tcp 0 0 *:mysql *:* LISTEN
結果我保存文件爲my.conf
,應該是my.cnf
,這就是服務器只能加載並使用默認配置的原因。
您所使用的參數似乎是正確的,如果你想限制你的MySQL服務器只對本地連接的連接,我要補充這行到/ etc /我的。 cnf
[mysqld]
bind-address=127.0.0.1
不要忘了重新啓動mysqld服務爲要激活的配置更改
'skip-networking'會禁用服務器上的tcp功能,所以即使添加'bind-address',這個指令也會被'skip-networking'覆蓋。 – SIFE 2013-03-19 04:58:56
@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
。如果原因是在[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版本的默認值,因此只有在您確實要啓用遠程服務時,您才需要更改它(註釋上面的行)。
你爲什麼要這樣?你能解釋它背後的原因嗎?如果這是爲了安全(沒有遠程訪問)原因,你可以通過註釋掉my.cnf中的bind-address指令來允許本地主機訪問,即有bind-address = 127.0.0.1那裏有 – arielf 2013-03-11 00:48:54
我不需要任何遠程訪問。 – SIFE 2013-03-11 00:54:46
僅使用套接字是否具有性能優勢? – 2014-10-01 22:42:06