在docker容器中重置密码mysql

fra*_*sto 3 mysql wordpress docker

我在 docker 容器上运行 MySql。我将它用于我的 WordPress 数据库。它一直工作正常,但我想检查一些事情,因为我从 WordFence 收到警告,说一个用户是在 Wordpress 之外创建的。

但是,我似乎不记得 root 密码是什么。按照本指南(https://www.techrepublic.com/article/how-to-set-change-and-recover-a-mysql-root-password/)我尝试重置密码,但总是出现错误说 mysqld_safe 已经在另一个进程上运行。

当我做 a 时ps -x,我得到了这个:

  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /bin/sh /usr/bin/mysqld_safe
   92 pts/0    Ss     0:00 bash
  115 pts/0    R+     0:00 ps -x
Run Code Online (Sandbox Code Playgroud)

我似乎无法终止这个过程。我不知道如何mysqld_safe使用 -skip-grant-tables 运行。我发现更奇怪的是,当我执行 a 时service mysql stop,它说它停止了 mysql,但我仍然可以访问该博客 - 只有停止容器才能将其关闭。

关于我可以在这里做什么的任何线索?

fra*_*sto 9

我找到了怎么做。

我必须停止容器:

docker stop my-container

然后,我需要将我的容器提交到一个新图像:

docker commit my-container temp-container

我暂时安装了这个:

docker run -it --name some_name -d --entrypoint=bash -v the-volume:/var/lib/mysql temp_container

docker attach some_name

然后,当在 bash 中时,我可以简单地运行mysqld_safe --skip-grant-tables &并更改 root 密码,就像网络上经常解释的那样。