在預設的情況下MySQL是接受所有IP來源的連線,與帳號權限無關。
我們可以用 netstat -na 來檢查

1
2
[root@www ~]# netstat -an | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

其中的 0.0.0.0:3306 就是監聽從所有 IP 來源對 3306 port 的連線。若是只有本機的程式在存取MySQL可以透過修改設定來強制只監聽 loopback 介面。

首先,編輯 /etc/my.cnf 檔,在 mysqld 區增加設定如下:

1
2
[mysqld]
bind-address=127.0.0.1

然後重新啟動 MySQL 服務,再次用 netstat 檢查

1
2
[root@www ~]# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

這樣就只聽取 127.0.0.1 的連線了,進一步提升MySQL的安全性,不過還是要記的檢查一下所有使用MySQL database的程式是否正常作業。