1049: Unknown database 'name'
MySQL의미
접속하거나 사용하려는 데이터베이스(스키마)가 서버에 존재하지 않는다. USE 문이나 연결 문자열의 기본 데이터베이스 이름이 존재하지 않는 스키마를 가리킨다.
원인
데이터베이스가 생성된 적이 없거나, 이름의 철자가 틀렸거나(대소문자 구분은 운영체제에 따라 다를 수 있음), 삭제되었거나, 애플리케이션이 잘못된 환경(dev/prod)에 연결하는 경우다. 새 서버로 이전할 때 스키마가 마이그레이션되지 않은 것도 흔한 원인이다.
해결 방법
기존 데이터베이스 목록 확인: SHOW DATABASES; 이름의 철자와 대소문자가 일치하는지 확인한다(lower_case_table_names 설정이 중요하다). 존재하지 않으면 생성한다: CREATE DATABASE database_name CHARACTER SET utf8mb4; 또는 백업에서 복원한다. 애플리케이션 연결 구성에서 대상 환경을 확인한다.
같은 데이터베이스의 다른 항목
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log (binary log에 안전하지 않은 문장 기록)
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (해당 값에 대한 파티션 없음)
- 1364Field 'name' doesn't have a default value (필드에 기본값 없음)
- 1206The total number of locks exceeds the lock table size (전체 락 수가 락 테이블 크기 초과)
- 1236Got fatal error 1236 from master when reading data from binary log (binary log 읽기 중 master로부터 치명적 오류 1236 수신)
- 1129Host 'host' is blocked because of many connection errors (연결 오류가 많아 호스트 차단됨)