워드프레스 관리자 비밀번호 재설정은 phpMyAdmin에서 wp_users 테이블의 user_pass 값을 MD5 함수로 새 비밀번호를 저장하는 방식이 가장 안전합니다.
워드프레스 계정에 이메일이 정확히 입력되어 있고, 서버에서 메일 전송이 가능한 세팅이라면 로그인 페이지의 “비밀번호를 잃어버셨나요?” 링크를 통해 이메일로 로그인 및 비밀번호 재설정이 가능합니다. 하지만 이메일이 전송되지 않거나 관리자 이메일 주소를 모르는 상황에서는 데이터베이스나 파일 시스템을 직접 수정해야 합니다.
데이터베이스에 접근 가능한 경로에 따라 방법이 달라집니다. cPanel이나 호스팅 관리 페이지에서 phpMyAdmin에 접근할 수 있으면 phpMyAdmin 방식이 가장 직관적이고, phpMyAdmin이 없는 카페24, 가비아 같은 환경에서는 HeidiSQL 같은 외부 DB 툴에서 SQL 쿼리로 처리합니다.
DB 접근 자체가 불가능하면 FTP로 테마 폴더의 functions.php 파일에 wp_set_password 함수를 추가하는 방식을 사용해야 합니다.
2025년 4월 공개된 워드프레스 6.8부터 비밀번호 해싱 알고리즘이 phpass에서 bcrypt로 전환됐지만, DB에 MD5 해시로 직접 저장해도 로그인 자체는 정상 동작합니다. MD5 해시로 저장한 비밀번호는 첫 로그인 시 워드프레스가 자동으로 bcrypt 해시로 다시 저장하기 때문입니다.
1. 워드프레스 관리자 비밀번호 재설정 방법 비교
세 방법 중 어떤 것을 써야 하는지는 현재 데이터베이스에 접근 가능한 방식으로 결정됩니다. 아래 표에서 자신의 상황에 맞는 행을 찾아 해당 섹션으로 이동합니다.
| 방법 | 접근 조건 | 난이도 | 특징 |
|---|---|---|---|
| phpMyAdmin | cPanel, DirectAdmin 등 호스팅에서 phpMyAdmin 제공 | 초급 | 공식 문서 권장, GUI 기반 |
| SQL 쿼리 (HeidiSQL 등) | DB 접속 정보 보유, 외부 DB 툴 사용 가능 | 중급 | 카페24, 가비아 등 phpMyAdmin 미제공 환경 |
| FTP + functions.php | FTP 접속만 가능, DB 접근 불가 | 중급 | 사용자 ID(user_id=1)를 알아야 함 |
세 방법 모두 DB에 직접 쓰기 작업을 하거나 실행 코드를 삽입하는 방식이므로 작업 전 데이터베이스 백업이 필수입니다. phpMyAdmin > Export에서 SQL 형식으로 백업 파일을 내려받습니다.
2. phpMyAdmin에서 워드프레스 비밀번호 초기화 (권장)
phpMyAdmin에서 워드프레스 비밀번호 초기화를 하려면, 호스팅 관리 페이지에서 phpMyAdmin에 진입합니다. 케미클라우드, 블루호스트, 패스트코멧 같은 해외 호스팅은 cPanel 하단 Databases 섹션에 phpMyAdmin 아이콘이 배치돼 있습니다. 국내 호스팅은 관리 페이지 내 별도 메뉴로 제공됩니다.

phpMyAdmin에 진입한 뒤 아래 순서로 진행합니다.
- 좌측 데이터베이스 목록에서 워드프레스 사이트에 연결된 DB를 클릭합니다. 어느 DB인지 확실하지 않으면 FTP로 사이트 루트의 wp-config.php 파일을 열어
DB_NAME값을 확인합니다. - 테이블 목록에서 wp_users를 클릭합니다. 워드프레스 설치 시 접두어를 변경한 사이트에서는
wpxk3_users,myprefix_users같이 접미어가_users인 테이블을 선택합니다. - 관리자 계정 행에서 Edit(수정) 아이콘(연필 모양)을 클릭합니다. 관리자가 여럿이거나 확신이 없으면
user_email컬럼 값을 확인해 정확한 계정을 선택합니다. - user_pass 필드에서 기존 해시값(
$P$B...또는$wp$2y$...로 시작)을 지우고 새 비밀번호를 평문 그대로 입력합니다. 예:newpass2026! - 같은 행의 Function 컬럼 드롭다운에서 MD5를 선택합니다. MD5 선택을 빠뜨리면 평문이 그대로 저장돼 로그인 자체가 불가능해집니다.
- 하단 Go(실행) 버튼을 클릭합니다.
이제 사이트주소/wp-admin에 접속해 user_login 값과 동일한 계정을 입력하고 방금 설정한 평문 비밀번호로 로그인합니다.
MD5를 선택해야 하는 이유
워드프레스는 2.5 버전 이후 phpass 프레임워크의 포터블 해시(MD5를 8192회 반복)를 사용하고 있고, 6.8부터는 bcrypt를 사용합니다. 그럼에도 워드프레스는 하위 호환성 유지 때문에 로그인 시 MD5 형식의 해시도 유효한 자격 증명으로 인정합니다. MD5로 저장된 값은 해당 사용자가 처음 로그인할 때 자동으로 bcrypt 형식으로 다시 저장됩니다.
bcrypt 해시를 처음부터 직접 저장하는 방법도 있지만, phpMyAdmin의 Function(함수) 드롭다운에는 MD5는 있어도 bcrypt 생성 함수가 없어 별도로 PHP를 실행해 password_hash() 결과를 복사해 오는 절차가 필요합니다.
게다가 워드프레스 6.8+는 일반 bcrypt 형식($2y$10$...)이 아니라 앞에 $wp$를 붙인 독자 접두어($wp$2y$10$...)를 사용하기 때문에 접두어를 정확히 맞추지 않으면 로그인이 실패합니다. MD5로 저장한 뒤 첫 로그인에서 워드프레스가 자동으로 최신 bcrypt 형식으로 갱신시키는 방식이 결과적으로 가장 안전합니다.
3. SQL 쿼리로 wp_users 테이블 비밀번호 변경
phpMyAdmin GUI 대신 SQL 쿼리로 직접 처리하면 접근 도구와 무관하게 동일한 방식으로 워드프레스 관리자 비밀번호를 재설정할 수 있습니다.
phpMyAdmin SQL 탭, HeidiSQL이나 DBeaver 같은 외부 클라이언트, SSH로 접속한 MySQL 명령줄 모두 아래 쿼리를 그대로 실행합니다.
DB 접속 정보(호스트, 사용자명, 비밀번호, DB명)는 사이트 루트의 wp-config.php 파일 상단에서 확인할 수 있습니다.
3-1. wp_users 테이블 접두어 확인
쿼리를 실행하기 전에 실제 테이블 이름을 먼저 확인해야 합니다. 워드프레스 설치 시 보안 목적으로 접두어를 변경한 사이트는 wp_users가 아니라 xk3_users, myprefix_users 같은 형태로 저장돼 있습니다. wp-config.php에서 아래 줄을 찾습니다.
$table_prefix = 'wp_';
wp_ 자리에 다른 값이 들어 있으면 그 값에 users를 붙인 것이 실제 테이블 이름입니다. $table_prefix = 'xk3_';이면 대상 테이블은 xk3_users입니다. 접두어를 잘못 지정하면 Table doesn't exist 오류가 즉시 발생하므로 잘못된 테이블에 실수로 쓰기 작업을 하는 사고를 미리 막을 수 있습니다.
3-2. 비밀번호 변경 쿼리 실행

쿼리 창에 아래 문장을 입력하고 실행합니다. 아래 예시는 접두어가 기본값 wp_인 상태를 가정한 예시입니다.
UPDATE `wp_users` SET `user_pass` = MD5('새_비밀번호') WHERE `user_login` = '사용자_이름';
새_비밀번호 자리에 사용할 평문 비밀번호를, 사용자_이름 자리에 관리자 아이디를 입력합니다. MD5() 함수는 MySQL이 내장으로 제공하므로 별도 처리 없이 평문을 감싸 넣기만 하면 됩니다.
관리자 계정이 여러 개인 사이트에서 이메일 주소로 특정하고 싶다면 아래 형태를 사용합니다.
UPDATE `wp_users` SET `user_pass` = MD5('새_비밀번호') WHERE `user_email` = 'admin@example.com';
실행 후 변경 결과를 확인하려면 아래 SELECT 문을 실행합니다. user_pass 값이 32자리 16진수 문자열로 표시되면 정상 저장된 상태입니다.
SELECT ID, user_login, user_pass FROM `wp_users` WHERE `user_login` = '사용자_이름';
작업이 끝나면 사이트주소/wp-admin에 접속해 방금 설정한 평문 비밀번호로 로그인합니다. 로그인 후 처리해야 할 후속 조치는 섹션 5에서 설명합니다.
4. FTP로 functions.php에 wp_set_password 추가
DB 접근 자체가 불가능하고 FTP만 사용 가능한 상황에서는 활성 테마의 functions.php 파일에 wp_set_password 함수를 삽입해 워드프레스가 자동으로 비밀번호를 재설정하도록 합니다.
functions.php를 통한 비밀번호 삽입 방식은 관리자 계정의 사용자 ID(최초 설치 시 만든 최고 관리자는 1번)를 알고 있어야 합니다.
FileZilla 같은 FTP 클라이언트로 사이트에 접속한 뒤 아래 순서로 작업합니다.

- /wp-content/themes/현재_활성_테마/ 경로로 이동합니다. 활성 테마 이름을 모르면 워드프레스 대시보드가 아닌 FTP에서 확인해야 하는데,
/wp-content/themes/하위 폴더 중 최근 수정 일자가 가장 최신인 폴더가 활성 테마입니다. - functions.php 파일을 로컬로 다운로드하고, 원본을
functions.php.bak등으로 복사해 백업합니다. - 다운로드한 파일을 텍스트 편집기(메모장이 아닌 VS Code, Notepad++ 등 UTF-8 지원 편집기)로 엽니다.
- 파일 첫 줄
<?php바로 다음 줄에 아래 코드를 추가합니다.
<?php
wp_set_password( 'new_password_2026', 1 );
new_password_2026 자리에 사용할 새 비밀번호를, 숫자 1 자리에 관리자 계정의 사용자 ID를 입력합니다. 최초 설치 시 만든 최고 관리자 계정이 1번입니다.
- 파일을 저장하고 FTP로 원본 위치에 업로드해 덮어씁니다.
사이트주소/wp-admin에 접속해 새 비밀번호로 로그인합니다.
로그인이 성공한 뒤에는 반드시 섹션 5의 functions.php 코드 삭제 작업을 실행합니다.
5. 재설정 후 후속 조치와 재발 방지
functions.php 방식으로 로그인에 성공했다면 방금 추가한 wp_set_password 줄을 즉시 삭제하고 파일을 다시 업로드해야 합니다. wp_set_password 줄은 페이지가 로드될 때마다 매번 실행돼 비밀번호를 계속 초기값으로 되돌리기 때문입니다.
이 코드를 남겨두면 관리자가 워드프레스 대시보드에서 비밀번호를 새로 지정해도 다음 페이지 로드 시점에 원래대로 리셋됩니다.
phpMyAdmin이나 SQL 방식으로 재설정했다면 관리자 페이지 진입 후 사용자 > 프로필 화면에서 새 비밀번호를 한 번 더 지정합니다.
워드프레스 6.8부터는 로그인 시점에 MD5 해시가 자동으로 bcrypt로 재해싱되지만, 프로필에서 비밀번호를 재설정하면 즉시 bcrypt 형식으로 저장되므로 보안 관점에서 더 확실합니다. bcrypt 해시는 $wp$2y$로 시작하고, phpass는 $P$B로, MD5는 32자리 16진수로 저장돼 구분됩니다.
비밀번호 유출 흔적이 있거나 알 수 없는 관리자 계정이 추가된 상황을 발견했다면 재설정만으로 안심하기 어렵습니다.
워드프레스 6.8 이상 버전으로 코어를 업데이트하고, Limit Login Attempts Reloaded 같은 로그인 시도 제한 플러그인을 설치하며, 2단계 인증을 병행하면 재발 방지에 효과적입니다.
FAQ
SSH 접근이 가능한데 더 간단한 방법이 있나요?
워드프레스 공식 도구인 WP-CLI가 설치돼 있다면 wp user reset-password admin --show-password 명령 한 줄로 즉시 재설정하고 새 비밀번호를 확인할 수 있습니다. 사전 조건은 세 가지입니다. 첫째, 서버에 SSH 접속 권한이 있어야 합니다. 둘째, 클라우드웨이즈, SiteGround 등 상당수 호스팅은 WP-CLI를 기본 탑재하지만 미설치 환경에서는 curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar로 별도 다운로드해야 합니다. 셋째, 명령 실행 전 cd public_html 같이 워드프레스가 설치된 디렉터리로 이동해야 하며 그렇지 않으면 This does not seem to be a WordPress installation 오류가 발생합니다.
관리자 계정이 여러 개인데 어느 것을 편집해야 하는지 모르겠습니다.
phpMyAdmin에서 wp_users 테이블을 열 때 user_email 컬럼 값이 자신이 실제로 사용하는 이메일 주소인 행을 선택합니다. 사용자 ID 1번이 항상 최고 관리자인 것은 맞지만, 이후 추가된 관리자 계정도 모두 관리자 권한을 가지므로 실제로 로그인하려는 계정을 정확히 특정해야 합니다.
phpMyAdmin에서 MD5를 선택하지 않고 저장했는데 로그인이 안 됩니다.
Function(함수) 컬럼에서 MD5 선택을 빠뜨리면 새 비밀번호가 평문 그대로 user_pass 필드에 저장돼 워드프레스가 인증에 실패합니다. 되돌리려면 같은 절차를 다시 진행하되 이번에는 user_pass 필드에 새 비밀번호를 다시 입력하고 Function 드롭다운에서 반드시 MD5를 선택한 뒤 Go를 클릭합니다. 이전에 저장된 평문 값은 덮어써지므로 별도로 복구할 필요는 없습니다. 로그인에 성공하면 워드프레스가 자동으로 bcrypt 형식으로 다시 해싱됩니다.
user_pass 값을 바꿨는데도 로그인이 안 됩니다.
원인은 세 가지 중 하나입니다. 첫째, phpMyAdmin의 Function 드롭다운에서 MD5 선택을 빠뜨려 평문이 그대로 저장된 경우입니다. user_pass 값이 $P$B나 $wp$2y$가 아닌 평문 문자열로 보이면 이 상황입니다. 둘째, 워드프레스가 캐시 플러그인이나 오브젝트 캐시로 이전 사용자 정보를 유지하고 있는 경우로, /wp-content/cache/ 폴더를 비우거나 캐시 플러그인을 잠시 비활성화하면 해결됩니다. 셋째, 편집한 행이 실제 로그인하려는 계정이 아닌 경우로, user_login이 아니라 user_email이나 ID 값으로 대상을 다시 확인합니다. 세 원인 모두 해당하지 않는다면 브라우저 쿠키를 삭제하고 시크릿 창에서 시도합니다.



