在 Ubuntu 上的 LAMPP 服务器中重置 MySQL 根密码

Aji*_*t S 5 mysql password-recovery

我忘记了我为 MySQL 的 root 用户更改的密码。我以 root 用户身份登录,当我这样做
# /opt/lampp/lampp security
时,结果为

XAMPP: Quick security check...
XAMPP: Your XAMPP pages are secured by a password.
XAMPP: Do you want to change the password anyway? [no] n
XAMPP: MySQL has a root passwort set. Fine! :)
XAMPP: The FTP password for user 'nobody' is still set to 'lampp'.
XAMPP: Do you want to change the password? [yes] n
XAMPP: Done.
Run Code Online (Sandbox Code Playgroud)

我如何重置密码。我检查了一下,但在任何文件(包括my.cnf)中都找不到密码。

Shl*_*ach 6

skip-grant-tables解决方案不是推荐的解决方案,原因如下:

  1. 它使数据库易受攻击(即使使用跳过网络)
  2. 它需要两次关闭您的数据库。

只需将数据库关闭一次的解决方案如下:

  1. 创建一个临时的 SQL 文本文件,比如 /tmp/init.sql
  2. 在这个文件中,写:

    为 root@localhost 设置密码 = PASSWORD('the_new_password');

  3. 将以下内容添加到您的 MySQL 配置文件(在 Ubuntu 上为/etc/mysql/my.cnf),在以下[mysqld]部分:

    初始化文件=/tmp/init.sql

  4. 重启 MySQL 一次。init 文件在启动时被读取和执行。密码被重置。

  5. 继续删除init-file=/tmp/init.sql条目my.cnf(不要忘记这一点)。即使服务器已启动并正在运行。
  6. 删除/tmp/init.sql文件。

还有更多解决方案!请参考我过去的一篇博文。请务必查看strcmp 的评论 #4

  • 链接帖子上的评论 #4 显示了如何在不重启的情况下做到这一点。 (2认同)