지난 며칠간 멘붕이었다. 블로그 서버이전을 하면서, 서버설정을 다 못마친 상태로 취침에 들었는데, 어드민 정보를 설정하면서 클립보드에 저장되어있던 값이 비밀번호로 세팅되어버렸다. 1password 를 이용하고 있으니, 임의사용 비번의 히스토리를 당연히 저장하고 있을거라고 생각했는데… 없다. 아무것도 로그인되지 않는다.

워드프레스.org 사이트에서는 여섯가지 방법을 안내한다.

  1. 로그인해서 바꿔라 → 야!
  2. 비밀번호 찾기를 통해 바꿔라 → 이메일 서버 설정이 안되었단말야!
  3. MySQL 커맨드라인으로 바꿔라 → 어떻게 하는건지 이해가 안된다.
  4. phpMyAdmin 을 깔아서 바꿔라 → 디지털오션에서 myPhpAdmin 을 설치하는걸 알아본다. 그만 알아보자. 아무리 읽어도 모르겠다.
  5. FTP로 올려봐라 → 이건 또 몰까..
  6. WP CLI 로 바꿔라 → 디렉토리로 이동하라는데 어떻게 하는거야

교훈 : 개발 못하는 사람은 설치형 워드프레스 쓰지 말자.

일단 심호흡을 하자. 🧘‍♀️ 서버에 접근하는 건 SSH 로 가능한 상태라 열심히 검색했다. 그리고 Reset WordPress User Password Via Shell (SSH) 라는 글을 발견했다. 터미널을 통해 접속하니, 사이트 설정이 더 필요하다는 메세지가 출력됐다.

This setup requires a domain name.  If you do not have one yet, you may
cancel this setup, press Ctrl+C.  This script will run again on your next login
--------------------------------------------------
Enter the domain name for your new WordPress site.
(ex. example.org or test.example.org) do not include www or http/s
--------------------------------------------------
Domain/Subdomain name:

이미 설정 다했는데.. 왜 도메인을 또 입력하라고 하는거야.. 잠깐 동공지진이 일었다. 👀 어차피 로그인 못하면 버려야 할테니 일단 서비스 설정과 동일하게 입력했다. 혹시나 꼬일까봐.. 기도했던 메시지가 출력됐다 Complete!

Installation complete. Access your new WordPress site in a browser to continue.

하지만 여기다 뭘 치란 건지 모르겠다 ㅠㅠ 이게 뭐하는 짓이야 ㅠㅠ

root@minieetea.com:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

오 성공했다? 그리고 순서대로 하나씩 커맨드를 입력해본다.

mysql> use wordpress
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

아무래도 쿼리하는 화면으로 바뀌게 되니, 뭔가 잘 되고 있다는 확신이 든다.

mysql> show tables;
+----------------------------+
| Tables_in_wordpress        |
+----------------------------+
| wp_commentmeta             |
| wp_comments                |
| wp_links                   |
| wp_nf3_action_meta         |
| wp_nf3_actions             |
| wp_nf3_chunks              |
| wp_nf3_field_meta          |
| wp_nf3_fields              |
| wp_nf3_form_meta           |
| wp_nf3_forms               |
| wp_nf3_object_meta         |
| wp_nf3_objects             |
| wp_nf3_relationships       |
| wp_nf3_upgrades            |
| wp_options                 |
| wp_postmeta                |
| wp_posts                   |
| wp_short_link_clicks       |
| wp_short_link_replacements |
| wp_short_links             |
| wp_term_relationships      |
| wp_term_taxonomy           |
| wp_termmeta                |
| wp_terms                   |
| wp_usermeta                |
| wp_users                   |
+----------------------------+
26 rows in set (0.01 sec)

사용자를 찾는다! (아래 출력된 비밀번호는 123456789을 암호화해서 넣었다.)

mysql> select id, user_login, user_pass from wp_users;
+----+------------+------------------------------------+
| id | user_login | user_pass                          |
+----+------------+------------------------------------+
|  1 | minieetea  | 6ebe76c9fb411be97b3b0d48b791a7c9   |
+----+------------+------------------------------------+
1 rows in set (0.00 sec)

그래그래 잘하고 있어!!

비밀번호는 DB에 md5 로 암호화 되어 저장되어 있기 때문에, 설정을 원하는 비밀번호를 굳이 md5로 바꿔줘야한다. 글에 링크되어 있는 곳에 가서 무사히 변환~ (아래 출력된 비밀번호는 98765421을 암호화해서 넣었다.)

mysql> update wp_users set user_pass="25f9e794323b453885f5181f1b624d0b" where id =1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

오오 바꼈어! 그럼 다시 조회해서 성공했는지 보자.

mysql> select id, user_login, user_pass from wp_users;
+----+------------+------------------------------------+
| id | user_login | user_pass                          |
+----+------------+------------------------------------+
|  1 | minieetea  | 25f9e794323b453885f5181f1b624d0b   |
+----+------------+------------------------------------+
1 rows in set (0.00 sec)

크~ 그리고 지금 이렇게 로그인에 성공하여 블로그로 삽질기를 남겨둔다는 후문이다. 정리하고보니 워드프레스.org 에서 얘기한 3번 방법었구나. Step1 부터 읽어보고 스킵했는데, 그 아래에

Note: if you have a recent version of MySQL (version 5.x?) you can have MySQL compute the MD5 hash for you.
1. Skip step#1 above.

라고 써있다. 정말, 불친절한것에 친절하다. 위에 써놔야지 위에!!