Can't drop database '%s'; database doesn't exist
MySQL 오류 번호 1008(ER_DB_DROP_EXISTS)을 화면 또는 로그의 메시지와 대조하는 문서입니다.
빠른 답변
- 우선 확인할 원인
- 이 메시지는 MySQL 오류 번호 1008, 심볼 ER_DB_DROP_EXISTS, SQLSTATE HY000에 해당하며 삭제하려는 데이터베이스가 존재하지 않음을 나타냅니다.
- 먼저 확인할 항목
- 현재 화면 또는 로그의 메시지가 `Can't drop database '<데이터베이스 이름>'; database doesn't exist` 형식과 일치하는지 확인합니다.
- 적용 범위
- 현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
- 출처 확인일
- 2026-07-29
- 최종 검토
- 2026-07-24
- 수정일
- 2026-07-27
- 정정 이력
- 2026-07-29 이후 기록 없음
- 관련 기술
현재 증상
- 애플리케이션 오류 메시지
먼저 확인할 항목
현재 화면 또는 로그의 메시지가 `Can't drop database '<데이터베이스 이름>'; database doesn't exist` 형식과 일치하는지 확인합니다.
오류 번호가 표시되는 경우 `1008`인지 확인합니다.
SQLSTATE가 표시되는 경우 `HY000`인지 확인합니다.
환경별 원인과 조치
식별
현재 화면 또는 로그에 표시된 오류 메시지와 다음 MySQL 오류 정보를 대조합니다.
- 오류 번호:
1008 - 심볼:
ER_DB_DROP_EXISTS - SQLSTATE:
HY000 - 메시지:
Can't drop database '%s'; database doesn't exist
%s 자리에는 대상 데이터베이스 이름이 표시됩니다.
현재 메시지가 위 형식과 일치하면 MySQL 오류 번호 1008로 식별합니다.
출처
진단 기록
먼저 문제가 발생한 URL 또는 화면, 표시 시각, 사용한 플랫폼과 배포 버전을 기록합니다. 화면과 로그에서 오류 문자열이 일부만 보이면 앞뒤 문장을 포함해 원문을 보존하고, 민감한 값은 가립니다.
다음 순서로 관찰값을 대조합니다.
- 현재 화면 또는 로그의 메시지가
Can't drop database '<데이터베이스 이름>'; database doesn't exist형식과 일치하는지 확인합니다. - 오류 번호가 표시되는 경우
1008인지 확인합니다. - SQLSTATE가 표시되는 경우
HY000인지 확인합니다.
각 항목은 확인한 값과 확인하지 못한 이유를 함께 기록해야 합니다. 이 문서의 조건과 실제 관찰값이 다르면 원인을 단정하지 말고, 문제 해결 시작 가이드에서 더 넓은 분기를 선택하십시오.
판정 기준
오류 문자열이 일치한다는 사실만으로 원인이 확정되지는 않습니다. 같은 문구가 여러 환경에서 나타날 수 있으므로 웹서버·런타임·운영체제·최근 변경 사항을 함께 비교합니다. 한 단계에서 기대한 값이 나오지 않으면 다음 단계로 넘어가지 말고 해당 환경의 공식 문서를 우선 확인합니다.
안전한 다음 단계
검사 전에 백업과 변경 이력을 확인하고, 비밀번호·세션 쿠키·인증 토큰·개인정보를 공개 로그나 문의 내용에 넣지 않습니다. 설정·권한·데이터를 변경해야 한다면 영향 범위와 되돌리는 방법을 먼저 기록한 뒤 운영 시간과 승인 절차에 맞춰 진행합니다.
원인 분포
이 분포는 수집된 3건의 사례에서 관측된 원인 기준이며, 실제 발생 빈도를 의미하지 않습니다.
| 관측된 원인 | 사례 |
|---|---|
| 현재 선택된 database와 실제 작업 대상 불일치 | [Observation] 사례 1 |
| 서버 재시작·복구 전후 메타데이터 불일치 | [Observation] 사례 2 |
| 테이블 목록과 InnoDB 메타데이터 불일치 | [Observation] 사례 3 |
오진 함정
- [Observation] 객체가 존재하지 않는다는 오류가 발생해도, 현재 선택된 database가 실제 작업 대상과 다를 수 있습니다.
- [Observation] 테이블 목록에 보이는 상태만으로 실제 InnoDB 메타데이터와의 일치를 확정할 수 없습니다.
- [Observation] 서버 재시작이나 복구 이후에는 메타데이터 상태가 달라졌는지 확인해야 합니다.
환경 매트릭스
| 환경 또는 상태 | 관측된 문제 | 사례 |
|---|---|---|
| 클라이언트의 database 선택 상태가 실제 대상과 다름 | 객체를 찾지 못함 | [Observation] 사례 1 |
| 서버 재시작·복구 직후 | 메타데이터에 따른 객체 존재 판단 불일치 | [Observation] 사례 2 |
| InnoDB 메타데이터와 테이블 목록이 불일치 | 객체 존재 오류 | [Observation] 사례 3 |
진단 순서
- [Observation] 현재 선택된 database와 작업 대상 객체 이름을 확인합니다.
- [Observation] 서버 재시작 또는 복구가 있었다면 실제 메타데이터를 확인합니다.
- [Observation] 테이블 목록과 InnoDB 메타데이터가 일치하는지 확인합니다.
- [Observation] 상태 불일치가 확인되면 사례 1에서는 올바른 대상으로 변경했고, 사례 3에서는 일관된 백업·복원으로 상태를 맞췄습니다.
[Hypothesis] 위 확인 순서는 대상 database나 메타데이터 상태를 먼저 분리해 객체 부재 오류의 원인을 좁히는 데 사용할 수 있습니다.
참고 자료
MySQL · 공식 자료 · 확인 범위: MySQL 오류 번호 1008의 심볼은 ER_DB_DROP_EXISTS입니다., MySQL 오류 번호 1008의 SQLSTATE는 HY000입니다., MySQL 오류 번호 1008의 메시지는 "Can't drop database '%s'; database doesn't exist"입니다. · 확인일: 2026-07-24
확인 범위: 클라이언트가 선택한 database와 실제 작업 대상이 다르면 객체가 없다는 오류가 발생할 수 있습니다., 선택된 database와 객체 이름을 확인하고 올바른 대상으로 변경했습니다. · 확인일: 2026-07-29
확인 범위: 서버 재시작 또는 복구 전후에 메타데이터가 일치하지 않으면 객체 존재 판단이 달라질 수 있습니다., 관리 명령 전에 실제 메타데이터를 확인하는 절차가 필요했습니다. · 확인일: 2026-07-29
확인 범위: 테이블 목록과 실제 InnoDB 메타데이터가 다르면 객체 존재 오류가 나타날 수 있습니다., 백업과 복원으로 상태를 일치시켰습니다. · 확인일: 2026-07-29