我正在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,但我仍然可以访问博客-仅停止容器会将其关闭。
关于我在这里可以做什么的任何线索吗?
答案 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密码即可。