웹사이트에 워드프레스를 설치하면 데이터베이스가 자동으로 생성됩니다. 데이터베이스는 웹사이트의 핵심 요소로, 웹 호스팅 계정을 통해 접근할 수 있습니다. 댓글, 글, 사이트 이름, 사용자 정보 등 웹사이트의 모든 데이터가 구조화된 형태로 저장되는 일종의 '창고'라고 생각하면 이해하기 쉽습니다.
방문자가 웹사이트에 접속할 때마다 데이터베이스에서 정보를 가져와 화면에 표시합니다. 따라서 데이터베이스와 웹사이트 간의 연결이 끊어지면 방문자에게는 빈 페이지만 보이게 되고, 대부분 다시 방문하지 않을 가능성이 높습니다.
데이터베이스는 테이블이 종종 손상되는 것으로 악명이 높습니다. 데이터베이스에 깨지거나 누락되거나 손상된 테이블이 있으면 방문자는 데이터베이스 오류를 마주하게 됩니다. "워드프레스에서 데이터베이스 연결을 설정할 수 없습니다(Error establishing a database connection)" 또는 "경고: 스트림을 열지 못했습니다(Warning: failed to open stream)" 같은 오류 메시지가 표시될 수 있습니다.

워드프레스 데이터베이스에 무슨 일이 일어난 걸까?
데이터베이스가 손상되거나 깨지거나 사라졌을 때 위와 같은 데이터베이스 연결 오류 메시지가 나타납니다. 다음과 같은 문제가 발생했을 때 데이터베이스에 장애가 생길 수 있습니다.
- wp-config.php 파일에 잘못된 자격 증명(계정 정보) 입력
- 웹 호스팅 서버 다운
- PHP 메모리 한도 초과로 인한 서버 중단
- 파일 권한(퍼미션) 설정 오류
- 사용 중인 외부 방화벽 서비스가 웹사이트 전체 또는 일부를 차단
- 서드파티 플러그인이 파일 경로를 망가뜨리거나 콘텐츠를 삭제
- 해킹으로 인해 외부인이 사이트 및 MySQL 데이터베이스에 접근한 경우
다행히도 이런 오류는 복구할 수 있으며, 데이터베이스를 정기적으로 최적화하면 대부분의 문제를 사전에 예방할 수 있습니다.
복구 작업을 시작하기 전에 반드시 워드프레스 데이터베이스를 백업하는 것이 좋습니다. 백업이 없으면 웹사이트에 문제가 생겼을 때 콘텐츠를 잃어버릴 수 있습니다. 백업본이 있다면 안심하고 데이터베이스를 수정할 수 있고, 무언가 잘못되더라도 백업을 복원해 몇 분 만에 웹사이트를 정상 상태로 되돌릴 수 있습니다.
몇 단계만 거치면 데이터베이스를 백업하거나 다운로드해 내 컴퓨터에 저장할 수 있습니다. 특정 파일만 선택해서 다운로드하려면 몇 단계를 더 거쳐야 합니다. 아래에서 워드프레스 데이터베이스 백업 방법을 살펴보겠습니다.
워드프레스 데이터베이스 백업 방법
1단계: 웹 호스팅 계정에 로그인한 후 phpMyAdmin을 선택합니다. phpMyAdmin 페이지가 열리면 데이터베이스 테이블 목록을 확인할 수 있습니다. 워드프레스 데이터베이스는 기본적으로 12개의 테이블로 구성되며, 웹사이트가 성장함에 따라 더 많은 테이블이 생성됩니다.
기본 테이블은 다음과 같습니다.
1: wp_commentmeta
2: wp_comments
3: wp_links
4: wp_options
5: wp_postmeta
6: wp_posts
7: wp_terms
8: wp_termmeta
9: wp_term_relationships
10: wp_term_taxonomy
11: wp_usermeta
12: wp_users

2단계: 화면 상단의 '내보내기(Export)' 탭을 클릭하면 두 가지 옵션이 나타납니다.
- 빠른 방식(Quick): 최소한의 옵션만 표시
- 사용자 지정(Custom): 모든 옵션 표시

'빠른 방식'을 선택하면 데이터베이스 전체가 내보내집니다.
'사용자 지정'을 선택하면 추가 옵션이 활성화되어 드롭다운 메뉴에서 특정 테이블만 골라 내보낼 수 있습니다.
3단계: 백업 파일 형식을 선택합니다. 기본값인 SQL을 사용하거나, 편의에 맞는 다른 형식을 지정할 수 있습니다. 형식을 선택한 후 '실행(GO)'을 클릭하세요.
데이터베이스 크기에 따라 다르지만, 전체 백업 파일이 다운로드되기까지 몇 분 정도 걸릴 수 있습니다.
이제 데이터베이스 백업이 안전하게 준비되었으니, 데이터베이스를 복구하고 최적화하는 방법을 알아보겠습니다. 복구 방법은 두 가지가 있습니다. 워드프레스(2.9 버전 이상)에는 기본적으로 데이터베이스 복구 기능이 내장되어 있어, 기술적 지식이 없는 사용자도 몇 단계 만에 손상된 파일과 데이터베이스를 고칠 수 있습니다. 이 방법이 작동하지 않으면 phpMyAdmin을 활용할 수 있습니다. 두 가지 방법을 모두 소개합니다.
WP_ALLOW_REPAIR로 워드프레스 데이터베이스 복구하기
먼저 웹 호스팅 계정에 접속한 후 파일 관리자(File Manager)로 이동하고, 화면 왼쪽 메뉴에서 public_html 폴더를 선택합니다. 그다음 wp-config.php 파일을 찾아 마우스 오른쪽 버튼을 클릭하고 '편집(Edit)'을 선택합니다.
텍스트 에디터에 다음 코드를 입력합니다.
define( 'WP_ALLOW_REPAIR', true );
이 코드는 반드시 "if ( !defined('ABSPATH') )" 줄 위에 삽입해야 합니다.

변경 사항을 저장합니다. 작업 내용을 확실히 알지 못한다면 이 외에 다른 부분은 수정하지 않는 것이 좋습니다.
저장 후 브라우저에서 다음 URL로 접속하세요.
https://yoursite.com/wp-admin/maint/repair.php
(*yoursite* 부분은 실제 워드프레스 사이트 주소로 변경해야 합니다.) 참고로 이 페이지를 보려면 로그인 상태여야 합니다.
페이지에 접속하면 두 개의 버튼이 있는 워드프레스 화면이 나타납니다.
- Repair Database(데이터베이스 복구)
- Repair and Optimize Database(데이터베이스 복구 및 최적화)

두 버튼 중 어느 것을 클릭해도 손상된 데이터베이스를 복구할 수 있지만, 최적화까지 함께 진행해주는 두 번째 옵션을 사용하는 것을 권장합니다.
워드프레스가 복구 작업을 마치면 화면에 완료 메시지가 표시됩니다.

마지막으로, 설정 파일에 추가했던 "define( 'WP_ALLOW_REPAIR', true );" 코드를 삭제하는 것을 잊지 마세요. 보안상 매우 중요한 단계입니다.
이 방법이 잘 작동하지 않는다면, phpMyAdmin을 이용해 데이터베이스 테이블을 복구하고 최적화하는 방법도 시도해볼 수 있습니다.
phpMyAdmin으로 MySQL 데이터베이스 테이블 복구하기
- 웹 호스팅 계정에 접속한 후 phpMyAdmin을 선택합니다. phpMyAdmin 페이지에서 데이터베이스 테이블 목록을 확인할 수 있습니다.
- 각 테이블 왼쪽에 체크박스가 있습니다. 복구할 테이블의 체크박스를 선택하세요.
- 하단에 'With Selected(선택한 항목)' 옵션이 있습니다. 해당 옵션을 클릭하면 드롭다운 메뉴가 나타납니다.
- 드롭다운 메뉴에서 'Repair Table(테이블 복구)'을 선택합니다.
선택한 테이블이 자동으로 복구되며, 복구 결과를 확인할 수 있는 페이지가 나타납니다.

phpMyAdmin으로 MySQL 데이터베이스 테이블 최적화하기
- 각 테이블 왼쪽의 체크박스에서 최적화할 테이블을 선택합니다.
- 하단의 'With Selected(선택한 항목)' 옵션을 클릭하면 드롭다운 메뉴가 열립니다.
- 드롭다운 메뉴에서 'Optimize table(테이블 최적화)'을 선택합니다.
테이블이 자동으로 최적화되고, 결과를 보여주는 페이지가 나타납니다.

마무리
데이터베이스 연결 문제는 흔히 발생하는 오류이며, 한 번 해결했다고 해서 재발하지 않는다는 보장은 없습니다. 웹 호스팅 서버 다운처럼 사용자가 통제할 수 없는 문제도 있지만, 해킹으로부터 워드프레스 사이트를 보호하는 것처럼 미리 예방할 수 있는 문제도 많습니다. 이 외에도 HTTP에서 HTTPS로 전환하거나, 사이트 보안 강화(hardening), 로그인 페이지 보호 등 추가적인 보안 조치를 함께 적용하는 것이 좋습니다.
이 가이드를 통해 손상된 데이터베이스 파일을 성공적으로 복구하고 워드프레스 사이트를 다시 정상 운영할 수 있기를 바랍니다.