Восстановление пароля wordpress

WP-CLI

Столкнулся с тем, что случайно забыл пароль от админки блога и пришлось восстанавливать. Сохраню инструкцию, вдруг какому-либо бедолаге еще пригодится 🙂

Поясню, вариант с обновлением пароля напрямую в DB не работает. Даже с MD5() он отказывается хэшировать пароль и записывать его в качестве значения.

Чтобы восстановить пароль череp WP-CLI, необходимо для начала подключиться к контейнеру:

docker exec -it wordpress bash

или(если нет bash)

docker exec -it wordpress sh

Далее проверить наличие wp-cli

wp --info

Если wp-cli нет, то можно его установить(до перезапуска контейнера)

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

Чтобы он не удалялся, необходимо добавить его в Dockerfile или compose-file.

После установки проверить снова при помощи wp --info

Затем перейти в каталог WordPress

cd /var/www/html

Вывести список пользователей

wp user list

Если будет ошибка вроде

Error: YIKES! It looks like you’re running this as root. You probably meant to run this as the user that your WordPress installation exists under. If you REALLY mean to run this as root, we won’t stop you, but just bear in mind that any code on this site will then have full control of your server, making it quite DANGEROUS. If you’d like to continue as root, please run this again, adding this flag: —allow-root If you’d like to run it as the user that this site is under, you can run the following to become the respective user: sudo -u USER -i — wp <command>

то необходимо добавить --allow-root

например

wp user list --allow-root

и можно поменять пароль

wp user update <username> --user_pass="НовыйПароль123" --allow-root

Далее идем в админку и авторизуемся с новым паролем. WordPress его хэширует самостоятельно.

Database

Чтобы узнать имя пользователя, если забыли и его, необходимо подключиться к базе WP. В моем случае это MariaDB, креды к которой я знаю.

Чтобы подключиться к MariaDB в контейнере, необходимо выполнить команду:

docker exec -it wp-database mariadb -u <username> -p

После ввести пароль и далее оперировать с SQL.

Сейчас опишу стандартный путь, но в зависимости от версий он может измениться.

Выбираем базу данных:

USE wordpress;

Далее делаем SELECT:

SELECT * FROM wp_users

Это выведет список всех пользователей со всеми полями DB.

Также напишу основные команды SQL:

  1. SHOW DATABASES;
  2. USE <DB_NAME>;
  3. SHOW TABLES;
  4. SELECT * FROM <DB_NAME>;

Точка с запятой обязательны, иначе команда просто не выполнится!

Leave a Reply

Ваш адрес эл. почты не будет опубликован. Обязательные поля помечены *