MySQL root 密码设置错误

MySQL root 密码设置错误

我正在做一个项目,一直想用 MySQL 代替 SQLite。所以我下载了 MySQL,并尝试用 设置 root 密码mysql_secure_installation,但当我提交两个密码时,出现以下错误:

 ... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

我一直尝试通过执行以下操作在 mysql 中设置密码:

$ sudo mysql -u root
mysql> SET PASSWORD FOR 'root' = PASSWORD('new_password');

update user set authentication_string=password("password") where user='root';

但随后它会出现语法错误。

我该如何解决这个问题?

编辑:我现在遇到的一个问题是,我需要 root 密码才能连接到 MySQL 服务器,将其留空似乎不起作用

答案1

我刚刚发现了同样的问题。因此,以下是我的步骤:

  1. 我终止了该mysql_secure_installation进程sudo pkill -f mysql_secure_installation

  2. 我使用以下方式登录mysql

     sudo mysql
    

    当然,sudo 会询问我的系统 root 密码。一旦我提供了正确的 root 密码,我就可以作为 root mysql 用户连接到 mysql。

  3. 我使用我的 mysql 会话运行 ALTER USER:

     mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my-secret-password';
    
  4. 出口

     mysql> exit
     Bye
    
  5. 运行sudo mysql_secure_installation命令,完成安全Mysql的步骤。

附言:似乎既不包含/root/.mysql_history也不~/.mysql_history包含我的ALTER USER命令。无论如何,最好检查一下,并删除/编辑您运行的包含敏感信息的查询。

答案2

尝试:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'yournewpassword';

答案3

在开始安装过程“sudo mysql_secure_installation”之前:

  1. 登录mysql并设置root密码。
  2. 退出 mysql 并运行安全安装
  3. 使用 mysql -u root -p 和您在步骤 1 中设置的密码登录 mysql,并设置以下内容“ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;”

详细的安装指南可以在这里找到:https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04

答案4

我最近不得不在运行 Ubuntu 20.04 的无头 Ubuntu 服务器上重新安装 MySQL,最简单的方法是解决更改密码时 mysql_secure_installation 不起作用的问题,我只需使用“mysqladmin -u root password”(密码不是要使用的密码,而是更改 root 密码的命令),然后它会要求输入新密码,但由于某种原因,安全安装脚本搞砸了,所以只要 MySQL root 有密码,我并不担心运行安全脚本,因为我不允许端口 3306 通过防火墙并且只有本地访问权限。

相关内容