Сброс пароля MySQL в Docker-контейнере - PullRequest
0 голосов
/ 10 февраля 2019

Я запускаю 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

Я не могу убить этот процесс. Я понятия не имею, как запустить mysqld_safe с -skip-grant-tables. Что я нахожу еще более странным, это когда я делаюservice mysql stop, он говорит, что он останавливает mysql, но я все еще могу получить доступ к блогу - только остановка контейнера приводит к его падению.

Любая подсказка о том, что я мог сделать здесь?

1 Ответ

0 голосов
/ 10 февраля 2019

Я нашел, как это сделать.

Я должен остановить контейнер:

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, как часто объясняется в Интернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...