首页 > 解决方案 > 向 MySQL V8 提供 root 密码失败

问题描述

在 Ubuntu 20.04 上,我安装了 MySQL V8.0.25。但是我有点无法应用(有效的)root密码。安装 mysql-server 的 apt-get 过程没有要求输入 root 密码。而且我不能用“mysql -u roor -p”命令进入mysql,我总是用“sudo mysql”。

所以我首先尝试了这个MySQL 页面描述的过程。但这根本不起作用,因为 V8 似乎不支持 PASSWORD 功能。所以而不是运行

UPDATE mysql.user
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

我用这个:

UPDATE mysql.user 
   SET authentication_string = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('MyNewPass'))))), password_expired = 'N' 
   WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

我发现这里有描述。

查询 select host, user, authentication_string, password_expired from mysql.user;展示了一张漂亮的桌子:

+-----------+------------------+------------------------------------------------------------------------+------------------+
| host      | user             | authentication_string                                                  | password_expired |
+-----------+------------------+------------------------------------------------------------------------+------------------+
| %         | joomla           | $A$005$MF`6ea"OfH5v1kTuRW0zJS5MKk82btugdAz62uWe6QkxnrXtTLtx5M. | N                |
| localhost | debian-sys-maint | $A$005$l%.r}2CBQT:+DV)a9S/UJUDJoFA8PhnCIE.E3zDFbBeUZ5vTrNSZpZDDv05 | N                |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                |
s%nn69n9�NkFf7xoPdW/CCD/NjvLhTKXtx8gQmTX.RpIbOcHWsA. | N                |
| localhost | root             | *54A2D097267DE7669E1857071AD5E33A9EF8AD5F                              | N                |
+-----------+------------------+------------------------------------------------------------------------+------------------+

但是“mysql -u root -p”仍然不能使用 suppiel 密码。我仍然收到消息:

$ mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

我现在花了很多时间在这上面,不知道如何继续。任何帮助表示赞赏。

标签: mysqlpasswordsroot

解决方案


推荐阅读