禁止MySQL root远程访问

 kevin   2018-11-16 10:51   69 人阅读  0 条评论

本文说明解决这个问题的一部分,即禁止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端口开放。


本文地址:http://www.hikevin.cc/?id=37
温馨提示:文章内容系作者个人观点,不代表Hikevin黑客学习网对观点赞同或支持。
版权声明:本文为转载文章,来源于 kevin ,版权归原作者所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?