MySQL

安装MySQL5.7后root密码为空,修改密码不生效的解决方法

08-19 11:45

在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代替。


修改完成后,不使用密码仍可以正常登录,修改没生效,出现这种情况,是因为"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;


微信小程序
大潇博客 版权所有 Copyright ©2016~2025
京ICP备17004217号-6  合作QQ:284710375
天玺科技