解决 MySQL 不输入用户和密码也连接成功的问题

前言

MySQL 5.6.46 版本

分析

数据库安装并启动后,通过 root 账号登录(此时可不用输密码)在mysql 库中可以看到 user 表中的数据如下:

4 条初始记录中的密码字段都为空字符串,且有 1 条记录用户名字段也为空串

用户名与密码字段都为空串说明不用输入用户名密码也可以连接(输入其他字符则连接失败)

用户名字段存在,但密码字段为空串说明只输入用户名但不输入密码也可以连接(密码输入其他字符则连接失败)

解决

  1. 通过 root 用户连接后,修改当前登录用户的密码

    因为使用空的用户名登录时,没有 mysql 库的权限,user 表在 mysql 库中

    mysql>SET PASSWORD = PASSWORD('admin');
    

    修改密码后 user 表中记录(Password字段数据为密文存储):

  2. 执行 SQL 删除 user 表中密码为空的记录

    mysql>use mysql;
    mysql>delete from user where password is null or password = '';
    

    删除密码字段为空的记录后 user 表中记录:

此时再连接就需要输入连接密码了

原文地址:https://www.cnblogs.com/zhiyin1209/p/12638350.html