Centos中MySQL设置密码跟不允许匿名登陆
在Centos中刚安装完的Mysql,root用户默认是无密码的,并且允许匿名登录,当然仅限于本地登陆。这点我们可以通过查看数据库mysql中user表得到检验:
由user表可以看出,root用户对应的密码全部为空,并且存在用户名和密码都为空的记录,即允许匿名登录。为了消除隐患,我们为root用户设置密码并且删除用户名和密码都为空的记录。
1.设置密码
设置密码即是将root用户对应的空的密码修改为我们想要的密码。
a.首先用root用户登陆mysql:
注意:直接输入#mysql 也可登陆。
b.选择mysql:
c.设置root用户密码:
用mysql> update user set password = password ('123') where user = ‘root’; ,如下
上面的sql语句,是将root用户的所有记录的密码修改为123。
注意:password=password(’123’),而不是password=’123’。
d.重载授权表,使改变立即生效:
e.测试登陆:
退出exit,然后再次用#mysql -u root -p登陆,根据提示输入密码:
由上图可以知道root用户密码设置成功。
2.设置不允许匿名登陆
为了演示匿名登陆,首先退出mysql,然后直接用#mysql -u -p匿名登陆:
我们发现可以直接登陆。
设置不允许匿名登陆即是删除用户名和密码都为空的记录。下面是其步骤:
a.首先用root用户登陆mysql,根据提示输入root用户的密码:
b.紧接着选择mysql:
c.将用户名为空的记录删除掉:
用mysql> delete from user where user=''; ,如下:
d.重载授权表mysql> flush privileges;,使改变立即生效:
退出exit,再尝试用#mysql -u -p直接匿名登陆:
发现已经无法匿名登陆了。
至此,Centos中MySQL设置密码和不允许匿名登陆顺利结束。