mysql修改密码后无法登陆

发布时间: 2023-11-21 10:30 阅读: 文章来源:1MUMB40PS
问题说明:

在ubuntu系统中,使用apt-get安装MySQL5.7后, 此时root密码是空的, 可以使用如下两种SQL语句修改密码。

方式一:

mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘PWD‘;

mysql> flush privileges;

方式二:

mysql> update mysql.user SET authentication_string=PASSWORD(‘PWD‘) WHERE user=‘root‘ AND host=‘localhost‘;

mysql> flush privileges;

注意: 在mysql5.7中,字段password已经被authentication_string代替。

修改完成后, 不使用密码仍可以正常登录, why ?

解决方法:

经排查得知,原来是"auth_socket"这个认证插件惹的祸。

安装MySQL5.7后,如果没有为root用户提供密码,它将使用auth_socket插件。该插件只检查用户是否使用UNIX套接字进行连接,然后比较用户名,不关心也不需要密码。

如果要配置密码,需要同时更改插件并设置密码,SQL语句如下所示:

方式一:

mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘PWD‘;

mysql> flush privileges;

方式二:

mysql> update mysql.user SET plugin=‘mysql_native_password‘, authentication_string=PASSWORD(‘PWD‘) WHERE user=‘root‘ AND host=‘localhost‘;

mysql> flush privileges;

•••展开全文