前言
MySQL 5.6.46 版本
分析
数据库安装并启动后,通过 root
账号登录(此时可不用输密码)在mysql
库中可以看到 user 表中的数据如下:
4 条初始记录中的密码字段都为空字符串,且有 1 条记录用户名字段也为空串
用户名与密码字段都为空串说明不用输入用户名密码也可以连接(输入其他字符则连接失败)
用户名字段存在,但密码字段为空串说明只输入用户名但不输入密码也可以连接(密码输入其他字符则连接失败)
解决
-
通过 root 用户连接后,修改当前登录用户的密码
因为使用空的用户名登录时,没有 mysql 库的权限,user 表在 mysql 库中
mysql>SET PASSWORD = PASSWORD(‘admin‘);
修改密码后 user 表中记录(Password字段数据为密文存储):
-
执行 SQL 删除 user 表中密码为空的记录
mysql>use mysql; mysql>delete from user where password is null or password = ‘‘;
删除密码字段为空的记录后 user 表中记录:
此时再连接就需要输入连接密码了