dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Hata Teşhis Kütüphanesi/mysql-1049-unknown-database
MySQL
MySQL 8.0 - 8.4Şema & Taşıma
3 dk okuma
ERROR 1049 (42000): Unknown database 'prod_v2'

MySQL Bilinmeyen Veritabanı Hatası: Büyük/Küçük Harf Duyarlılığı, Migration Öncesi Şema Eksikliği ve Çözüm

lower_case_table_names farkları, eksik CREATE DATABASE adımları ve SQL dump içindeki USE komutlarının tetiklediği 1049 hatası ve idempotent şema kurulumu.

İnceleyen:Kıdemli Veritabanı Mimarı & SRE (dataiotech Labs)
Test Edilen Sürümler: MySQL 8.0 / 8.4 LTS / 9.0

Operasyonel Doğrulama & Güvenilirlik Standardı

Son Teknik İnceleme: 2 Kasım 2026
Test Edilen SürümlerMySQL 8.0.36, 8.4.1 LTS
Gerekli YetkiCREATE DATABASE yetkisi
Risk Seviyesi
LowVeritabanının eksik olması deployment adımlarını durdurur
Beklenen ÇıktıSHOW DATABASES çıktısında hedef veritabanının listelenmesi
Geri Dönüş (Rollback) Planı:DROP DATABASE IF EXISTS prod_v2;
MySQL Docs: CREATE DATABASE Syntax
İlk 60 Saniye Teşhis Protokolü:

Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.

▸Belirti

Uygulama başlarken veya bir SQL dump içe aktarılırken işlem reddedilir:

plaintext
ERROR 1049 (42000): Unknown database 'prod_v2'

▸Sahada Ne Görürsün?

CI/CD migration pipeline'ı ilk adımda kırılır veya yeni ortama taşınan uygulamanın veritabanı bulunamaz.


▸Kök Neden Matrisi

OlasılıkKök NedenAçıklama
%60Migration Öncesi DB OluşturulmamışFlyway veya Liquibase tabloları oluşturmaya çalışır ancak hedef veritabanı henüz fiziksel olarak mevcut değildir.
%25Büyük/Küçük Harf Duyarlılığı (`lower_case_table_names`)Linux sunucularda Prod ile prod farklı kabul edilir; Windows/macOS'tan Linux'a geçerken patlar.
%15SQL Dump İçindeki `USE` DirektifiDump dosyası başka bir veritabanı adına sabitlenmiştir.

▸ACİL RUNBOOK (0-5dk)

sql
-- 1. Mevcut veritabanlarını listele SHOW DATABASES; -- 2. Eksik veritabanını doğru charset ve collation ile oluştur CREATE DATABASE IF NOT EXISTS prod_v2 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; -- 3. Uygulama kullanıcısına yetki ver GRANT ALL PRIVILEGES ON prod_v2.* TO 'app_user'@'%'; FLUSH PRIVILEGES;

▸KALICI BLUEPRINT

  1. 1Standardize Charset & Collation: Tüm şemalar varsayılan olarak utf8mb4 ve utf8mb4_0900_ai_ci ile oluşturulmalıdır.
  2. 2Migration Pipeline Standardı: CI/CD scriptlerinde şema taşıma çalışmadan önce mysql -e "CREATE DATABASE IF NOT EXISTS ..." adımı zorunlu kılınmalıdır.

▸Doğrulama

sql
SELECT schema_name, default_character_set_name, default_collation_name FROM information_schema.schemata WHERE schema_name = 'prod_v2';

Diğer Veritabanı Hata Teşhisleri

Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.

Tüm Hatalar (82)