禁止mysql+root,禁止MySQL root远程访问
百度云觀測提示云上小悟存在一個安全漏洞:
漏洞描述
MySQL,3306端口,內部敏感服務對外開放存在風險,容易引起安全問題
影響版本
無
漏洞等級
中危
修復方案
關閉遠程訪問或限制訪問該服務的IP地址
本文說明解決這個問題的一部分,即禁止root用戶遠程訪問。
回憶一下安裝WordPress網站的時候,我們是如何建立數據庫的。麥新杰使用如下SQL語句:
create database abcd;
grant all on abcd.* to joe@localhost identified by '123456';
flush privileges;
exit;
這幾句SQL語句的意思是:
1, 創建abcd數據庫(一個MySQL服務器中可以創建很多不同的數據庫);
2, 將abcd數據庫的所有權限賦給joe用戶,限制在localhost上,并這是joe用戶的密碼123456;
3, 刷新并退出。
更多WordPress建站常用的SQL語言,請參考:玩WordPress,應知應會的SQL語言!!
這里面我么漏掉了一個重要細節,MySQL數據庫默認有一個root用戶,雖然我們給root用戶(MySQL)設置了密碼,但是還需要禁止root用戶的遠程訪問權限。
草根站長(比如麥新杰)的網站一般情況只需要本地訪問MySQL數據庫,因此不需要遠程訪問,本地訪問即可。
如何禁止MySQL root用戶遠程訪問權限
使用如下SQL語句,即可實現關閉MySQL root用戶遠程訪問權限的效果:
use mysql;
update user set host = "localhost" where user = "root" and host = "%";
flush privileges;
這幾句SQL的解釋如下:
1, 切換到mysql數據庫(這是MySQL自帶的一個數據庫,里面存放著一些root的配置信息);
2, 修改root用戶的host屬性,確保其為localhost,這表示只能本地訪問(%表示可以遠程訪問);
3, 刷新。
如何打開MySQL root用戶的遠程訪問權限
把上面的SQL語句的設置反過來即可:
use mysql;
update user set host = "%" where user = "root";
flush privileges;
最后,設置好了以后,要重啟MySQL進程。
2017-09-04:
以上方法要明確一下,只是限制root用戶只能本地訪問,并沒有關閉3306端口。因此各類網絡安全監測工具還是會提示3306端口開放。
關閉MySQL的3306端口,請參考:關閉MySQL的3306端口
總結
以上是生活随笔為你收集整理的禁止mysql+root,禁止MySQL root远程访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 唐人街探案2开的福特什么车
- 下一篇: Oracle数据库比较日期时间的大小