新安装的 MySQL 没有 root 密码,无法设置

新安装的 MySQL 没有 root 密码,无法设置

刚刚在 Ubuntu 服务器 20.04 上安装了 MySQL 8。

我可以使用 登录mysql -u root,但无论我如何尝试设置 root 密码,当我再次登录时它都不会要求输入密码。

是否需要以某种方式启用密码?

尝试过:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyN3wP4ssw0rd';
flush privileges;

它顺利完成,但没有启用密码。

尝试过:

UPDATE mysql.user SET password=PASSWORD("my-new-password") WHERE User='root';

这会导致语法错误。

答案1

MySQL 8.x 不允许人们以 身份登录,root除非他们也拥有sudo服务器上的 -level 权限。这是最近发布的 MySQL 中一系列安全增强功能的一部分,旨在消除该数据库引擎在过去 15 年中收到的坏名声,因为博主使用该root帐户设置 WordPress 帐户,然后该博客被“黑客”接管,然后整个数据库(以及连接到同一数据库的所有其他系统)都受到损害。这不是仅有的因为人们使用 WordPress,但这种做法在该社区中已经非常普遍。

要以 身份连接到 MySQL root,您需要使用sudo。您不需要提供密码,因为如果您有sudo,您基本上已经拥有了服务器:

sudo mysql

连接后,您可以为自己创建一个帐户并授予其可能需要的所有权限。例如,如果您需要一个“SysAdmin”帐户,您可以执行以下操作:

CREATE USER 'admin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123';
GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

从这里,您可以以正常方式连接到 MySQL:

mysql -u admin -p

理想情况下,rootMySQL 中的帐户仅在首次设置系统或修复严重错误时使用。

相关内容