WordPress veritabanını başka bir sunucuya taşırken #1273 – Unknown collation hatası alıyorsanız SQL dosyasının bozuk olması şart değildir. Çoğu durumda kaynak sunucunun kullandığı MySQL/MariaDB collation değeri hedef sunucunun sürümünde desteklenmiyordur.
Önce hata mesajındaki collation adını okuyun
Hata her zaman utf8_general_ci ile ilgili değildir. Güncel taşımalarda sık görülen örneklerden biri MySQL 8’de kullanılan utf8mb4_0900_ai_ci değerinin daha eski MySQL veya MariaDB sürümünde tanınmamasıdır. Çözüm, hata mesajındaki gerçek collation değerine göre yapılmalıdır.
1. SQL dosyasının yedeğini alın
Arama/değiştirme yapmadan önce orijinal .sql dosyasını ayrı bir kopya olarak saklayın. Büyük veritabanlarında yanlış toplu değişiklik veri kaybına veya karakter bozulmasına neden olabilir.
2. Hedef sunucunun desteklediği charset ve collation değerlerini kontrol edin
Mümkünse hedef MySQL/MariaDB sürümünü öğrenin. phpMyAdmin üzerinden veritabanı oluştururken sunulan collation listesi de desteklenen değerler hakkında fikir verir. En sağlıklı çözüm, hedef sunucuyu kaynakla uyumlu bir sürüme yükseltmektir. Bu mümkün değilse uyumlu bir collation seçilir.
3. Yalnız uyumsuz COLLATE değerini değiştirin
Örneğin SQL dosyasında utf8mb4_0900_ai_ci geçiyor ve hedef sunucu bunu desteklemiyorsa, hedefte desteklenen bir utf8mb4 collation ile değiştirilebilir. Sık kullanılan uyumlu seçeneklerden biri utf8mb4_unicode_ci olabilir; ancak hedef sunucuda gerçekten bulunduğunu doğrulayın.
Aranan: utf8mb4_0900_ai_ci
Yeni: utf8mb4_unicode_ci
Önemli: Sırf import çalışsın diye tüm utf8mb4 ifadelerini utf8 olarak değiştirmeyin. Bu işlem emoji ve dört bayt gerektiren bazı Unicode karakterlerini desteklemeyen daha dar bir charset’e geçişe yol açabilir.
Notepad++ ile güvenli arama/değiştirme
- SQL dosyasının kopyasını Notepad++ veya büyük dosyaları açabilen bir editörde açın.
- Ctrl + H ile Değiştir ekranını açın.
- Hata mesajında geçen collation değerini arayın.
- Hedef sunucunun desteklediği eşdeğer değeri yazın.
- Önce birkaç eşleşmeyi kontrol edin; ardından tümünü değiştirin.
- Dosyayı yeni bir isimle kaydedip tekrar import edin.
Import hâlâ başarısız oluyorsa
- Hata mesajında ikinci bir desteklenmeyen collation var mı kontrol edin.
- SQL dump’ın yarım/eksik inip inmediğini kontrol edin.
- Hedef veritabanının charset’ini
utf8mb4olarak oluşturmayı deneyin. - phpMyAdmin limitine takılıyorsanız hosting panelinin import aracı veya komut satırı kullanın.
- Kaynak sunucu erişilebilir durumdaysa dump’ı hedef sürümle daha uyumlu ayarlarla yeniden dışa aktarmak, elle yüzlerce değişiklik yapmaktan daha temiz olabilir.
WordPress tarafında ayrıca ne kontrol edilmeli?
Taşıma sonrasında wp-config.php içindeki veritabanı adı, kullanıcı, parola ve host değerlerinin yeni sunucuya ait olduğundan emin olun. Import tamamlanmış olsa bile yanlış bağlantı bilgileri ayrı bir “Veritabanı bağlantısı kurulurken hata” mesajına neden olabilir.
Taşıma, PHP/MySQL uyumluluğu veya WordPress veritabanı sorununu birlikte değerlendirmek isterseniz WordPress hizmetleri kapsamını inceleyebilirsiniz.
