在Docker容器中重置密码mysql

时间:2019-02-10 15:34:35

标签: 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已在另一个进程上运行。

当我做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

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

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

1 个答案:

答案 0 :(得分:1)

我找到了怎么做。

我必须停止容器:

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密码即可。