MySQL 5.7.20无法设置root密码。

13

我在 Ubuntu 14.04 上安装了 MySQL Server 5.7.20,可以使用以下方式登录服务器:

mysql -u root -p

密码为空...我该如何在终端设置MySQL根密码以便在安装MySQL服务器前使用?

我使用了静默安装方式安装它,然后尝试在终端运行此MySQL查询:

SET PASSWORD FOR 'root'@'localhost' = 'mypasswordhere';

但是我得到了这个:

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SHOW warnings;
+-------+------+------------------------------------------------------------------------------------------------------------+
| Level | Code | Message                                                                                                    |
+-------+------+------------------------------------------------------------------------------------------------------------+
| Note  | 1699 | SET PASSWORD has no significance for user 'root'@'localhost' as authentication plugin does not support it. |
+-------+------+------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

那我做错了什么?我只想将用户root的空白密码更改为mypasswordhere密码...应该怎样做?

2个回答

33

尝试

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypasswordhere';

来自https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

如果您在安装5.7时未为root用户提供密码,它将使用auth_socket插件。该插件不关心并且不需要密码。它只检查用户是否使用UNIX套接字连接,然后比较用户名。 如果我们要配置密码,我们需要同时更改插件并在同一命令中设置密码。


1
谢谢...我正在阅读MySQL手册页面,但我从来没有想过要更改插件,现在它可以工作了..谢谢....我在最后添加了'flush privileges;' - John
在Ubuntu上使用5.7.23版本可行。谢谢。 - Carlos Alberto García Guardia
仍然适用于服务器版本:5.7.28-0,ubuntu 18.04.4。 - Rostislav Ruban

4
在Ubuntu及其类似系统上安装Mysql后,应运行mysql_secure_installation命令。该命令可以消除一些可能出现的问题,其中之一是要求设置新的root密码。但是,@Valuator先前的回答会更改密码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接