AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1514709
Accepted
Borea Deitz
Borea Deitz
Asked: 2024-05-21 02:08:45 +0800 CST2024-05-21 02:08:45 +0800 CST 2024-05-21 02:08:45 +0800 CST

如何在 22.04 上运行 mysql_secure_installation?

  • 772

我刚刚在 Ubuntu 22.04 上安装了 MySQL 8.0.36,现在我想运行mysql_secure_installation.

Digital Ocean的指南指出,在 Ubuntu 上,mysql_secure_installation如果不首先配置 MySQL“root”用户的密码,运行会产生逻辑循环。按照它的指示,我这样做了:

$ sudo mysql
[sudo] password for user: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'crocodile69210';
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

mysql_secure_installation这样做之后,我根本无法跑步。当我尝试时,我收到密码错误:

$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: 
Error: Access denied for user 'root'@'localhost' (using password: YES)

当我输入之前建立的 MySQL“root”用户密码 ( crocodile69210) 和操作系统sudo密码时,就会发生这种情况。如果我根本不输入密码,结果是相同的,除了最后一行是 (using password: NO)。

我该怎么做才能跑步mysql_secure_installation?

编辑:看来ALTER USER上面的语句实际上并没有设置密码。如果我运行$ mysql -u root -p并复制并粘贴我设置的密码(该密码在终端历史记录中仍然可见),我将无法登录mysql:

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

我不确定这是否或如何阐明问题。

编辑2:根据数字海洋指南错误的理论,我卸载了MySQL ( $ sudo apt remove mysql-server),然后重新安装了它。我没有运行ALTER USERDO 文章中给出的命令。我仍然无法运行mysql_secure_installation并收到与第一次尝试期间相同的“访问被拒绝”密码错误。

编辑 3: 更多信息

当我第一次mysql-server从完全空白的状态安装时,我能够$ sudo mysql立即使用来访问 MySQL 交互式 shell。我发现在1)mysql-server使用卸载$ sudo apt remove mysql-server 和2)mysql-server使用完全清除后$ sudo apt purge mysql-server,重新安装后我仍然无法使用$ sudo mysql。我收到“拒绝访问”密码错误。所以,关于第一次安装的一些事情显然仍然存在。弄清楚这是什么可能有助于解决整个问题。

最终编辑:

  1. 在 Ubuntu 上,apt purge(或apt remove --purge) 根本不适用于 MySQL。您必须按照此过程从系统中完全卸载 MySQL。

  2. 我使用密码管理器生成了 MySQL 'root' 用户的密码,但我没有检查该密码。其中有一个反斜杠 ( \)。使用命令设置密码时ALTER USER,shell 会将其解释为转义字符并在将其传递到 MySQL 之前将其删除。因此,我的“root”密码实际上并不是我想象的那样。

不要在 MySQL 密码中使用反斜杠

22.04
  • 1 1 个回答
  • 50 Views

1 个回答

  • Voted
  1. Best Answer
    kos
    2024-05-21T05:00:02+08:002024-05-21T05:00:02+08:00

    您无法再root使用登录方式登录的原因sudo mysql是

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

    已将身份验证方法设置为root,mysql_native_password替换默认的auth_socket,该方法允许与 MySQL 用户(在本例中为root)名称相同的系统用户无需提供密码即可登录服务器。

    幸运的是,基于 Debian 的发行版上的 MySQL 安装附带了一个名为 的相当高权限的用户debian-sys-maint,这可以让您摆脱这些情况下的麻烦。

    首先,登录 MySQL debian-sys-maint(运行sudo less /etc/mysql/debian.cnf以查找debian-sys-maint密码):

    mysql -u debian-sys-maint -p<password>
    

    然后,作为第一次尝试,再次尝试更改 的root密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'crocodile69210';
    

    (之后就不需要了FLUSH PRIVILEGES。)

    为什么?

    因为我尝试root使用与您相同的方法更改密码,并且我完全能够登录正在运行的服务器mysql -u root -pcrocodile69210。

    您遵循的程序似乎是正确的:很可能是在执行过程中出现了问题。


    但不管怎样,为了运行mysql_secure_installation,如果再次设置密码不起作用,很可能你可以设置root返回的身份验证方式auth_socket,然后运行即可sudo mysql_secure_installation;您所遵循的指南相当旧,并且它警告您的错误很可能早已得到修复:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
    
    • 2

相关问题

  • Ubuntu 22.04 Beta 中的慢速互联网连接 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve