Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:Upgrade the database version

Son Güncelleme:Oct 03, 2026

ApsaraDB RDS for MySQL, veritabanının ana sürümünü yükseltmek için iki yöntem sunar. Veritabanı sürümünü doğrudan konsolda yükseltebilirsiniz. Alternatif olarak, daha yeni bir sürüm çalıştıran yeni bir ApsaraDB RDS for MySQL örneği satın alabilir ve Data Transmission Service (DTS) veri geçiş görevi kullanarak verileri orijinal örnekten yeni örneğe taşıyabilirsiniz. Bu işlem, veritabanı sürümünü dolaylı yoldan yükseltir.

Not

ApsaraDB RDS for MySQL, konsoldan veritabanı sürümünün doğrudan düşürülmesini desteklemez. Daha eski bir sürüm çalıştıran bir RDS örneği satın alabilir ve DTS kullanarak verileri daha yeni sürümlü örnekten daha eski sürümlü örneğe geçirebilirsiniz. Geçişin başarılı olduğunu doğruladıktan sonra daha yeni sürümlü örneği serbest bırakabilirsiniz.

Bir yükseltme yöntemi seçin

Hem Yöntem 1: Veritabanı sürümünü konsolda doğrudan yükseltin hem de Yöntem 2: DTS kullanarak veritabanı sürümünü yükseltin aşağıdaki MySQL yükseltme yollarını destekler: MySQL 5,5'ten 5,6'ya, 5,6'dan 5,7'ye, 5,7'den 8,0'a ve 8,0'dan 8,4'e. Veritabanını yükseltmeden önce aşağıdaki bilgilere dayanarak uygun bir yükseltme yöntemi seçin:

  • Örneğiniz aşağıdaki dört kategoriden birine aitse ve yapılandırması ilgili gereksinimleri karşılıyorsa Yöntem 1: Veritabanı sürümünü konsolda doğrudan yükseltin seçeneğini kullanın.

    Not

    Sunucusuz (Serverless) örnekler, konsoldan doğrudan yükseltmeyi desteklemez. Yöntem 2: DTS kullanarak veritabanı sürümünü yükseltin seçeneğini kullanmanız gerekir.

    Cluster Edition (ESSD ve yüksek performanslı disk)

    • Grup çoğaltma kısıtlaması: MySQL Group Replication (MGR) kullanan Cluster Edition örneklerini yükseltemezsiniz.

    • Veritabanı proxy kısıtlaması (varsa): 5,7'den 8,0'a yükseltmelerde veritabanı proxy'sinin küçük sürümü 1.13.41 veya üzeri olmalıdır. 8,0'dan 8,4'e yükseltmelerde veritabanı proxy'sinin küçük sürümü 2.25.11 veya üzeri olmalıdır.

    • Örnek durumu kısıtlaması: Örnek durumu Running olmalı ve birincil ile ikincil düğümler sağlıklı olup çoğaltma gecikmesi yaşamamalıdır.

    • Altyapı kısıtlaması: Veritabanı ve tüm tabloları InnoDB depolama altyapısını kullanmalıdır.

    • Örnek, kullanımı sonlandırılmış bir örnek türü kullanmamalıdır.

    High-availability Edition (ESSD ve yüksek performanslı disk)

    • Veritabanı proxy kısıtlaması (varsa): 5,7'den 8,0'a yükseltmelerde veritabanı proxy'sinin küçük sürümü 1.13.41 veya üzeri olmalıdır. 8,0'dan 8,4'e yükseltmelerde veritabanı proxy'sinin küçük sürümü 2.25.11 veya üzeri olmalıdır.

    • Örnek durumu kısıtlaması: Örnek durumu Running olmalı ve birincil ile ikincil düğümler sağlıklı olup çoğaltma gecikmesi yaşamamalıdır.

    • Altyapı kısıtlaması: Veritabanı ve tüm tabloları InnoDB depolama altyapısını kullanmalıdır.

    • Örnek, kullanımı sonlandırılmış bir örnek türü kullanmamalıdır.

    High-availability Edition (yüksek performanslı yerel disk)

    • Şifreleme kısıtlaması: Şeffaf veri şifreleme (TDE) özelliği devre dışı bırakılmalıdır. TDE etkinleştirildikten sonra devre dışı bırakılamaz. Örneğinizde TDE etkinse Yöntem 2: DTS kullanarak veritabanı sürümünü yükseltin seçeneğini kullanmanız gerekir.

    • Veritabanı proxy kısıtlaması (varsa): 5,7'den 8,0'a yükseltmelerde veritabanı proxy'sinin küçük sürümü 1.13.41 veya üzeri olmalıdır. 8,0'dan 8,4'e yükseltmelerde veritabanı proxy'sinin küçük sürümü 2.25.11 veya üzeri olmalıdır.

    • Örnek durumu kısıtlaması: Örnek durumu Running olmalı ve birincil ile ikincil düğümler sağlıklı olup çoğaltma gecikmesi yaşamamalıdır.

    • Tablo sayısı kısıtlaması: Tablo sayısı 1 milyonu aşamaz.

    • Altyapı kısıtlaması: Veritabanı ve tüm tabloları InnoDB depolama altyapısını kullanmalıdır.

    • Örnek türü kısıtlaması: Yükseltme sonrası veritabanı sürümü, birincil ve salt okunur örneklerin orijinal örnek türlerini desteklemelidir. Örnekler, kullanımı sonlandırılmış bir örnek türü kullanmamalıdır. Daha fazla bilgi için bkz. ApsaraDB RDS for MySQL birincil örnek türleri.

    Basic Edition (ESSD ve yüksek performanslı disk)

    • Örnek durumu kısıtlaması: Örnek durumu Running olmalıdır.

    • Altyapı kısıtlaması: Veritabanı ve tüm tabloları InnoDB depolama altyapısını kullanmalıdır.

    • Örnek, kullanımı sonlandırılmış bir örnek türü kullanmamalıdır.

  • Örneğiniz önceki dört kategoriden hiçbirine ait değilse veya TDE etkinse Yöntem 2: DTS kullanarak veritabanı sürümünü yükseltin seçeneğini kullanın.

  • Örneğiniz önceki dört kategoriden birine ait ancak yapılandırması gereksinimleri karşılamıyorsa aşağıdaki tabloda açıklandığı şekilde yapılandırmayı değiştirebilirsiniz. Ardından hem Yöntem 1: Veritabanı sürümünü konsolda doğrudan yükseltin hem de Yöntem 2: DTS kullanarak veritabanı sürümünü yükseltin seçeneklerinden birini kullanabilirsiniz.


    Sorun


    Çözüm


    Örnek durumu Running değil; örneğin Restarting durumunda.


    Veritabanı sürümünü yükseltmeden önce mevcut görevin tamamlanmasını bekleyin.


    Yüksek performanslı yerel diske sahip High-availability Edition örneğindeki tablo sayısı 1 milyonu aşıyor.


    Yükseltmeden önce gereksiz tabloları silin.


    Bazı veritabanları veya tablolar InnoDB altyapısını kullanmıyor.


    InnoDB altyapısına geçiş yapmak için ALTER TABLE <table_name> engine=InnoDB; komutunu çalıştırın.


    Örnek, kullanımı sonlandırılmış bir örnek türü kullanıyor.


    Veritabanı sürümünü yükseltmeden önce örnek türünü yükseltin. Daha fazla bilgi için bkz. Yapılandırmayı değiştirin.


    Veritabanı proxy'sinin küçük sürümü gereksinimleri karşılamıyor.


    Veritabanı proxy'sinin küçük sürümünü 1.13.41 veya üzerine yükseltin. Daha fazla bilgi için bkz. Veritabanı proxy'sinin küçük altyapı sürümünü yükseltin.


    Örneğin depolama türü standart SSD'dir.


    Önce standart SSD'yi kurumsal SSD'ye (ESSD) yükseltin ve ardından veritabanı sürümünü yükseltin.

Diğer veritabanı altyapılarının ana sürümünü yükseltmek için aşağıdaki konulara bakın:

Yöntem 1: Veritabanı sürümünü konsolda doğrudan yükseltin

Hazırlıklar

  1. Yeni sürümün farklılıklarını ve faydalarını anlayın

  2. Yükseltme sürecini ve etkisini anlayın

    • Sürüm aralığı kısıtlaması: Ana sürümler arasında doğrudan yükseltme yapamazsınız. Varsayılan olarak örnek, hedef ana sürümün en son küçük sürümüne yükseltilir. Örneğin, bir örneği doğrudan MySQL 5,6'dan MySQL 8,0'a yükseltemezsiniz. Önce MySQL 5,7'ye, ardından MySQL 8,0'a yükseltmeniz gerekir.

    • Sürüm düşürme kısıtlaması: Sürümü konsoldan doğrudan düşüremezsiniz. Daha eski bir sürüm çalıştıran bir RDS örneği satın alabilir ve DTS kullanarak verileri daha yeni sürümlü örnekten daha eski sürümlü örneğe geçirebilirsiniz. Geçişin başarılı olduğunu doğruladıktan sonra daha yeni sürümlü örneği serbest bırakabilirsiniz.

    • Yüksek performanslı yerel diske sahip örneklerin yükseltme süreci: Sistem önce ikincil örneği yükseltir. Yükseltme tamamlandıktan sonra birincil/ikincil yük devretme gerçekleşir. Ardından sistem birincil örneği yükseltir. Yükseltme, 15 saniyelik bir hizmet kesintisine neden olur. Yükseltmeyi yoğun olmayan saatlerde gerçekleştirmenizi öneririz.

    • ESSD'ye sahip örneklerin yükseltme süreci: Sistem yeni bir düğüm oluşturur ve yükseltmeyi bu yeni düğümde gerçekleştirir. Yeni düğüm yükseltildikten sonra sistem bağlantıları ona yönlendirir. Yükseltme, 15 saniyelik bir hizmet kesintisine neden olur. Yükseltmeyi yoğun olmayan saatlerde gerçekleştirmenizi öneririz.

  3. Örnek ve veritabanı yapılandırmalarını kontrol edin

    • Ayrılmış anahtar kelimeleri kontrol edin: Kullanıcı tanımlı işlevlerin herhangi bir ayrılmış anahtar kelime kullanmadığından emin olun.

    • Tam yedeklemeleri kontrol edin: Son bir hafta içinde başarılı bir tam veri yedeklemesi oluşturulup oluşturulmadığını kontrol edin. Oluşturulmadıysa tam veri yedeklemesi gerçekleştirin.

    • Otomatik yeniden bağlanma mekanizmasını kontrol edin: Veritabanı yükseltmesi sırasında RDS bir örnek anahtarlama işlemi gerçekleştirir. Yükseltmeyi yoğun olmayan saatlerde gerçekleştirmenizi veya uygulamanızın otomatik yeniden bağlanma mekanizmasına sahip olduğundan emin olmanızı öneririz. Örnek anahtarlamanın etkisi hakkında daha fazla bilgi için bkz. Örnek anahtarlamanın etkisi.

    • Kullanılabilir depolama alanını kontrol edin: Yükseltmeden önce yeterli boş disk alanınız olduğundan emin olun. En az 10 GB alan ayırmanızı öneririz.

    • Günlük temizleme ilkesini ayarlayın: Yerel günlükler için saklama süresini ve maksimum depolama kullanım yüzdesini artırın. Daha fazla bilgi için bkz. Yerel günlük ilkesini değiştirin.

    • Örnek parametrelerini yedekleyin: Yeni MySQL sürümünün kararlılığını ve performansını sağlamak için RDS, eski sürümdeki bazı parametreleri kullanımdan kaldırır. Bu parametreleri yükseltmeden sonra görüntüleyemez veya değiştiremezsiniz. Ana sürüm yükseltmesi gerçekleştirmeden önce, gelecekteki işlemler ve denetimler için ilgili parametrelerin değişiklik kayıtlarını yedekleyin.

    • 5,6'dan 5,7'ye, 5,7'den 8,0'a veya 8,0'dan 8,4'e yükseltmeler için aşağıdaki ek kontrolleri gerçekleştirmeniz gerekir:

      5,6'dan 5,7'ye yükseltme

      Tam metin dizinlerini ve sürüm bilgilerini kontrol edin: Küçük sürümü 20221130'dan önce olan RDS for MySQL 5,6 örneklerindeki veritabanları için tam metin dizinleri sistem tablespace'inde oluşturulur. 5,7 sürümüne yükseltmek tablespace'e zarar verebilir. Örneğiniz daha eski bir küçük sürüm çalıştırıyorsa önce onu RDS for MySQL 5,6'nın en son küçük sürümüne, ardından ana veritabanı sürümünü yükseltin. Daha fazla bilgi için bkz. SSS.

      5,7'den 8,0'a yükseltme

      • Özellik uyumluluğunu kontrol edin: Veritabanınızdaki saklı yordamlar, tetikleyiciler, görünümler veya işlevler MySQL 8.0 tarafından desteklenmeyen özellikler kullanıyorsa yükseltmeden önce bunları değiştirin. Aksi takdirde yükseltme başarısız olur.

      • Sistem tablosu bağımlılıklarını kontrol edin: Hizmetlerinizin MySQL 5.7 sistem tablolarına (sys, mysql, information_schema ve performance_schema veritabanındaki tablolar) bağımlı olup olmadığını kontrol edin. MySQL 5.7'deki bazı sistem tabloları 8.0'a yükseltme sırasında değiştirilir. Örneğin, tablolar kaldırılabilir, yeniden adlandırılabilir veya şemaları değiştirilebilir. Hizmetleriniz bu tablolara bağımlıysa hatalarla karşılaşabilir.

      • Veri türü uyumluluğunu kontrol edin: RDS for MySQL 8.0, eski sürümlerdeki bazı veri türlerini artık desteklememektedir. Bir tablo, MySQL 8.0'da desteklenmeyen veri türlerine sahip alanlar içeriyorsa yükseltmeden önce REPAIR TABLE komutunu çalıştırarak veya mantıksal dışa aktarma ve içe aktarma gerçekleştirerek bu sorunu çözmeniz gerekir. Daha fazla bilgi için bkz. Kurulumunuzu Yükseltmeye Hazırlama.

      • **comment değerlerini kontrol edin:** 20221231 ve sonraki MySQL 8.0 küçük sürümleri loose_upgrade_clear_invalid_comment parametresini tanıtır. Bu parametre ON (varsayılan değer) olarak ayarlandığında, başarısızlığı önlemek için yükseltme sırasında tabloların, alanların ve dizinlerin açıklamalarındaki bozuk karakterler otomatik olarak temizlenir. Bu nedenle, yükseltmeden önce veritabanı tablolarınızdaki comment değerlerinin bozuk karakter içerip içermediğini kontrol edin. Bozuk karakter varsa comment değeri temizlenir.

      • Saklı yordamları kontrol edin: Veritabanınızdaki saklı yordamlar veya işlevler bozuk karakter içeriyorsa başarısızlığı önlemek için yükseltmeden önce bunları düzeltin.

      • MySQL 5.5 ve önceki sürümlerden zaman veri türlerini kontrol edin: Veritabanınız MySQL 5.5 veya önceki sürümlerden zaman veri türlerine sahip tablolar içeriyorsa MySQL 8.0'a yükseltmeden önce tabloları yeniden oluşturarak başarısızlığı önleyin.

        • Veritabanı örneğinizin MySQL 5.5 veya önceki sürümlerden zaman veri türlerine sahip tablolar içerip içermediğini kontrol etmek için aşağıdaki SQL deyimlerini çalıştırın:

          # Show old time data types.
          SET SESSION show_old_temporals= ON;
          
          # Query for tables that contain old time data types.
          SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM information_schema.columns WHERE COLUMN_TYPE IN ("time /* 5.5 binary format */ ", "timestamp /* 5.5 binary format */", "datetime /* 5.5 binary format */ ");
        • Bir tablo MySQL 5.5 veya önceki sürümlerden zaman veri türleri içeriyorsa tablo şemasını yeniden oluşturmak için aşağıdaki komutu çalıştırabilirsiniz:

          # Rebuild the table.
          ALTER TABLE <table_name> FORCE;

      8,0'dan 8,4'e yükseltme

      • Özellik uyumluluğunu kontrol edin: MySQL 8.4, Group Replication (MGR) gibi belirli eski özellikleri artık desteklememektedir. Örnekte MGR etkinse yükseltmeden önce Grup Çoğaltmayı durdurun ve ilgili yapılandırmayı temizleyin. Aksi takdirde yükseltme devam edemez.

      • Tablo, dizin ve meta veri uyumluluğunu kontrol edin: Örneğin, MySQL 8.4 ile uyumsuz depolama altyapıları, tam metin dizinleri, atılmış tablespace'ler, bölümlenmiş tablolar üzerindeki yabancı anahtarlar, çok uzun görünüm sütun adları veya yabancı anahtar kısıtlamaları ya da SPATIAL veya RTREE dizinleri içerip içermediğini kontrol edin. Bir sorun bulunursa yükseltmeden önce tablo şemasını değiştirin veya ilgili dizinleri silin ve gerekirse yükseltmeden sonra yeniden oluşturun. Ayrıca, FLOAT veya DOUBLE alanını AUTO_INCREMENT sütunu olarak kullanan tablolar da önceden değiştirilmelidir.

      • Örnek topolojisini ve yükseltme koşullarını kontrol edin: Birincil ve ikincil düğümlerin sağlık durumunu, çoğaltma gecikmesini, salt okunur ve beklemedeki salt okunur örneklerin sayısını ve türlerini, örnek bağlantı türünü, tamamlanmamış görevleri, hedef sürüm örnek türünü ve MaxScale sürümünün yükseltme gereksinimlerini karşılayıp karşılamadığını kontrol edin. Kontrol öğeleri örnek türüne göre değişir: yerel disk örneklerinde ek salt okunur örnek topoloji kontrolleri, cloud disk örneklerinde ise depolama türü ve cloud ortamı kontrolleri bulunur.

      • Parametre, kimlik doğrulama ve bağlantı uyumluluğunu kontrol edin: MySQL 8.4, bazı 8.0 parametrelerini ve kimlik doğrulama yapılandırmalarını kaldırır ve yükseltme süreci uyumsuz parametreleri otomatik olarak filtreler veya dönüştürür. MySQL 8.4 artık TLSv1 veya TLSv1.1'i desteklememektedir. Sistem sunucu tarafındaki tls_version değerini otomatik olarak ayarlar ancak eski TLS protokollerini kullanan istemciler yükseltmeden sonra yine de bağlanamaz. İstemcilerinizin TLSv1.2 veya TLSv1.3'ü desteklediğini önceden teyit edin. Kimlik doğrulama, izinler ve parametrelerin bazı varsayılan davranışları da değişir. Yükseltmeden önce hesap oturum açma, izinler ve hizmet performansının etkilenmediğinden emin olun.

  4. Yükseltme öncesi test ve simülasyon

    • Sözdizimi testi: Yükseltmeden önce, sözdizimi uyumluluğunu test etmek amacıyla daha yeni sürüme sahip yeni bir RDS örneği oluşturun. Bu, daha eski sürümdeki sözdizimi veya özelliklerin yükseltmeden sonra desteklenmemesi nedeniyle oluşabilecek sorunları önlemeye yardımcı olur.

    • Yükseltme simülasyonu: Yükseltmeden önce orijinal örneği klonlayın ve klonlanan örneği kullanarak yükseltmeyi test edin. Tüm özelliklerin beklendiği gibi çalıştığını onayladıktan sonra orijinal örneği yükseltin.

  5. Yükseltme sonrası notlar

    • Örneği eski sürüme geri yükleme: Örneği o sürüme geri yüklemek için eski sürümden alınan cloud disk yedeklemesini kullanabilirsiniz. Bu işlem, yüksek performanslı yerel diske sahip örnekler için desteklenmez.

    • Örneği yeni sürüme geri yükleme: Eski sürümden alınan yedekleme kümelerini kullanarak örneği yeni sürüme geri yükleyemezsiniz. Geri yükleme işlemi gerçekleştirmek için örnek yükseltildikten sonra oluşturulan bir yedekleme kümesi kullanın.

Yordam

Senaryoya uygun bir yükseltme yöntemi seçin:

Yükseltme yöntemi

Yükseltme senaryosu

Önce ön kontrol yapın, sonra yükseltin

  • High-availability Edition (premium performance yerel disk): 5,6'dan 5,7'ye veya 5,7'den 8,0'a yükseltme.

  • High-availability Edition (ESSD veya premium performance disk) ve Cluster Edition (ESSD veya premium performance disk): 5,7'den 8,0'a yükseltme.

  • Tüm sürümler: 8,0'dan 8,4'e yükseltme.

Doğrudan yükseltme

  • Premium performance yerel diskli High-availability Edition: 5,5'ten 5,6'ya yükseltme.

  • Basic Edition (ESSD veya premium performance disk): 5,7'den 8,0'a yükseltme.

Önce ön kontrol yapın, sonra yükseltin

  1. Instances sayfasına gidin. Üst gezinme çubuğundan örneğinizin bulunduğu bölgeyi seçin. Ardından örnek ID'sine tıklayın.

  2. Sol gezinme bölmesinde Major Version Upgrade seçeneğine tıklayarak Upgrade Check sayfasına gidin.

  3. Select upgrade version açılır listesinden hedef sürümü seçin ve Create upgrade check report seçeneğine tıklayın. Rapor hakkında daha fazla bilgi için bkz. Ana sürüm yükseltme kontrol raporunun açıklaması.

  4. Kontrol tamamlandıktan ve risk olmadığından emin olduktan sonra Upgrade Instance sekmesine geçin.

  5. Select upgrade version açılır listesinden hedef sürümü seçin ve Upgrade Instance seçeneğine tıklayın.

  6. Major Engine Version Upgrade iletişim kutusunda hedef sürümü onaylayın, bir Switching Time seçin ve Upgrade seçeneğine tıklayın.

Doğrudan yükseltme

  1. Instances sayfasına gidin. Üst gezinme çubuğundan örneğinizin bulunduğu bölgeyi seçin. Ardından örnek ID'sine tıklayın.

  2. Basic Information > Configuration Information bölümünde Upgrade Major Engine Version seçeneğine tıklayın.

    Not

    Bu seçenek kullanılamıyorsa örneğinizin yükseltme gereksinimlerini karşılayıp karşılamadığını kontrol edin.

  3. Açılan iletişim kutusunda Switch Now veya Switch Within Maintenance Window seçeneğini belirleyin ve ardından OK seçeneğine tıklayın.

    • Switch Now: Yükseltmeyi hemen başlatır.

    • Switch Within Maintenance Window: Yükseltme belirtilen bakım penceresi içinde çalıştırılır. Bakım penceresini hızlıca değiştirmek için Maintenance Window yanındaki Settings seçeneğine de tıklayabilirsiniz.

    Not

    Yükseltme sırasında örnek durumu Upgrading Version olarak görünür.

Yöntem 2: DTS kullanarak veritabanı sürümünü yükseltme

Konsoldan doğrudan yükseltmeyi desteklemeyen örnekler için daha yeni bir veritabanı sürümüyle yeni bir örnek oluşturabilirsiniz. Ardından DTS veri geçiş görevini kullanarak verileri orijinal örnekten yeni örneğe taşıyın. Bu işlem, veritabanı sürümünü dolaylı yoldan yükseltir. Süreç aşağıdaki adımları içerir:

  1. Yeni bir örnek oluşturun

  2. Verileri yeni örneğe taşıyın

  3. Orijinal örneği serbest bırakın

Örnek: TDE etkinleştirilmiş bir MySQL 5,7 örneğiniz var ve bu örnek konsoldan doğrudan yükseltilemiyor. Bu durumda MySQL 8,0 çalışan yeni bir örnek oluşturabilir, verileri orijinal örnekten yeni örneğe taşıyabilir ve sonunda orijinal örneği serbest bırakabilirsiniz. Bu işlem veritabanı sürümünü dolaylı yoldan yükseltir.

Önemli

Sürümler arası veri geçişinden sonra uyumluluğu test edin ve örneği bir süre izleyin. Her şeyin normal olduğunu doğruladıktan sonra orijinal örneği serbest bırakın.

Ek 1: MySQL 8.0'dan MySQL 8.4'e yükseltmenin avantajları

  • Geliştirilmiş uzun vadeli kararlılık. MySQL 8.4, üretim ortamlarında uzun süreli kullanım için uygun bir LTS (Uzun Vadeli Destek) sürümüdür. Sonraki 8.4.x sürümleri kararlılığa, güvenlik düzeltmelerine ve uyumluluk bakımına odaklanır.

  • Geliştirilmiş kimlik doğrulama. WebAuthn/FIDO2 kimlik doğrulamasını destekler. Enterprise Edition, güvenlik anahtarları, biyometrik veriler ve diğer kimlik doğrulama yöntemlerini kullanabilir. Windows üzerinde SASL LDAP/GSSAPI/Kerberos kimlik doğrulaması desteklenir.

  • Geliştirilmiş GTID yetenekleri. Etiketli GTID'leri destekler. Farklı iş alanlarını, yönetimsel işlemleri veya veri işlemlerini ayırt etmek için UUID:TAG:NUMBER biçimini kullanabilir ve TRANSACTION_GTID_TAG ayrıcalığı erişim kontrolü sağlar.

  • İyileştirilmiş çoğaltma kullanılabilirliği. Çok iş parçacıklı uygulayıcı SQL_AFTER_GTIDS değerini destekler; böylece bir çoğaltma belirtilen GTID kümesine yakaladığında paralel çoğaltma devam edebilir.

  • Geliştirilmiş aktarma günlüğü kurtarma. Aktarma günlüğünün sonundaki tamamlanmamış işlemlerin ve ilgili artık dosyaların temizlenmesini destekler. Bu özellik, anormal kapanma sonrası aktarma günlüğü tutarsızlığından kaynaklanan kurtarma riskini azaltır.

  • Geliştirilmiş Grup Çoğaltma işlemleri. 8.4 LTS serisi içinde, sürümler arası grup üyeleri ve yerinde düşürme desteklenir; birincil anahtar değiştirme sırasında DDL ve DCL işlemleri için bekleme daha kapsamlı hale gelir ve tek birincil modda kimlik doğrulama bilgilerinin önceden temizlenmesi desteklenerek bellek ve anahtar değiştirme riskleri azaltılır.

  • İyileştirilmiş istatistikler. Histogramlar otomatik veya manuel güncelleme denetimini destekler. Bu durum, iyileştirici istatistiklerinin bakımının kontrol edilebilirliğini artırmaya yardımcı olur.

  • Geliştirilmiş yürütme planı tanılama. EXPLAIN FORMAT=JSON biçim sürümü seçimini destekler, EXPLAIN FORMAT=JSON INTO çıktıyı bir kullanıcı değişkenine yazar ve EXPLAIN FOR SCHEMA ile FOR DATABASE desteklenir. Bu özellik, şemalar arasında SQL tanılama işlemini kolaylaştırır.

  • Geliştirilmiş TLS sertifika doğrulaması. Şifreli bağlantıların güvenliğini artırmak için daha katı TLS sertifika doğrulamasını destekler.

  • İyileştirilmiş Clone özelliği. Aynı ana veya alt seri içinde, clone işlemi artık kesin bir nokta sürümü eşleşmesi gerektirmez. Bu durum, 8.4.x sürümleri arasında örnek başlatma, kurtarma ve ölçeklendirmeyi kolaylaştırır.

  • Geliştirilmiş denetim ve güvenlik duvarı. Enterprise Firewall, daha büyük operasyonel esneklik sağlamak için önbelleğin periyodik olarak yeniden yüklenmesini ve özel iç nesne şemalarını destekler.

  • İyileştirilmiş anahtar yönetimi geçişi. Anahtar halkası bileşeninden anahtar halkası eklentisine geçişi destekler. Bu durum, şifreleme geçişi ve uyumluluk senaryoları için esnekliği artırır.

  • İyileştirilmiş yükseltme gözlemlenebilirliği. Veri dizini, denetim ve sorun giderme amacıyla kurulum ve yükseltme geçmişini kaydeden JSON biçimli bir mysql_upgrade_history dosyasını korur.

  • Geliştirilmiş SQL ve iyileştirici evrimi. Gelecekteki SQL ve iyileştirici uzantıları için temel sağlayan TABLESAMPLE, QUALIFY ve PARALLEL gibi anahtar kelimeler ekler.

Ek 2: MySQL 5.7'den MySQL 8.0'a yükseltmenin avantajları

  • Güvenliği iyileştirir ve hesap yönetiminde daha fazla esneklik sağlar.

  • Kaynak gruplarının oluşturulmasını ve yönetilmesini destekler.

  • InnoDB depolama altyapısının özelliklerini geliştirir.

  • Yeni karakter kümeleri, veri türleri, sözdizimi, yeni yedekleme kilitleri ve optimizer_switch bayrakları için destek ekler.

  • JSON ve XML işlevselliğini geliştirir.

  • İyileştiricinin özelliklerini geliştirir.

  • Çoğaltma performansını iyileştirir.

  • Çok değerli dizinlerin oluşturulmasını ve türetilmiş koşul itme optimizasyonunu destekler.

  • MySQL izin tablalarının okunmasını destekler.

  • Kaynak tahsis kontrolünü destekler.

Ek 3: MySQL 5.6'dan MySQL 5.7'ye yükseltmenin avantajları

  • Parola yönetimi, hesap kilitleme ve şifreli bağlantılar gibi özellikler ekleyerek veritabanı güvenliğini iyileştirir.

  • RENAME INDEX kullanarak bir dizini yeniden adlandırma gibi Çevrimiçi DDL işlemlerini destekler.

  • InnoDB altyapısının ölçeklenebilirliğini ve geçici tabloların performansını iyileştirerek veri yüklemeyi hızlandırır.

  • JSON desteği sağlar.

  • Bölümlenmiş tablolar için Dizin Koşulu İtme (ICP) ve yeni InnoDB mekansal dizinlerini destekler.

  • Veritabanının bakılabilirliğini, ölçeklenebilirliğini ve performansını iyileştirmek için çoğu ayrıştırıcıyı, iyileştiriciyi ve maliyet modelini optimize eder.

  • Çin ulusal standardında belirtilen GB18030 karakter kümesi dahil olmak üzere desteklenen karakter kümelerinin kapsamını genişletir.

  • Çince, Japonca ve Koreceyi destekleyen ngram tam metin ayrıştırıcı eklentisini sağlar.

  • Kaynak döküm iş parçacıklarını optimize ederek kilit çekişmesini azaltır ve kaynak aktarım hızını artırır.

  • Çoğaltma gecikmesini önemli ölçüde azaltır.

  • Birden fazla ölçüm sağlayan ve depolama kullanımını azaltan sys sistem veritabanını ekler. Bu durum veritabanının kullanılabilirliğini önemli ölçüde iyileştirir.

Ek 4: MySQL 8.4 ile MySQL 8.0 arasındaki özellik farkları

Not

Aşağıdaki tabloda yalnızca MySQL 8.4 ile 8.0 arasındaki bazı önemli farklar listelenmiştir. Diğer farklar hakkında daha fazla bilgi için bkz. MySQL Sürüm Notları.


Özellik


8.0


8.4


WebAuthn kimlik doğrulaması


Desteklenmez


WebAuthn/FIDO2 kimlik doğrulamasını destekler. Enterprise Edition sunucu tarafı bir eklenti sağlar.


Windows üzerinde SASL LDAP


Desteklenmez


Windows üzerinde SASL LDAP/GSSAPI/Kerberos kimlik doğrulamasını destekler.


Clone eklentisi nokta sürümü uyumluluğu


Genellikle nokta sürümü eşleşmesi gerekir


Aynı ana veya alt sürüm içinde, örneğin 8.4.0 ile 8.4.x arasında, nokta sürümleri arasında clone işlemi yapılabilir.


Etiketli GTID


Desteklenmez


UUID:TAG:NUMBER biçimini destekler.


GTID etiket ayrıcalık kontrolü


Desteklenmez


TRANSACTION_GTID_TAG ayrıcalığını ekler.


SQL_AFTER_GTIDS ile çok iş parçacıklı uygulayıcı


Sınırlı kullanım; tek iş parçacığına geri dönebilir


Çok iş parçacıklı uygulayıcı ile desteklenir.


Aktarma günlüğü kurtarma temizliği


Eski aktarma günlüğü kurtarma davranışı


Aktarma günlüğünün sonundaki tamamlanmamış işlemleri ve ilgili artık dosyaları temizleyebilir.


Grup Çoğaltma 8.4.x grup içi uyumluluk


Uygulanamaz


8.4 LTS serisi içinde, sürümler arası grup üyeleri ve yerinde düşürme desteklenir.


Grup Çoğaltma sertifikasyon çöp toplama


Standart GC


Tek birincil modda preemptif sertifikasyon çöp toplamayı destekler.


group_replication_set_as_primary() DDL ve DCL bekleme


Daha az kapsama alanı


Birincil anahtarı değiştirmeden önce daha fazla DDL ve DCL işleminin tamamlanmasını bekler.


Otomatik histogram güncellemesi


AUTO UPDATE veya MANUAL UPDATE desteklemez


Otomatik veya manuel histogram güncelleme denetimini destekler.


EXPLAIN FORMAT=JSON çıkış sürümü


Tek JSON biçimi


JSON biçim sürümünü seçmek için explain_json_format_version değerini destekler.


EXPLAIN FORMAT=JSON INTO


Desteklenmez


JSON explain çıktısını bir kullanıcı değişkenine yazmayı destekler.


EXPLAIN FOR SCHEMA veya FOR DATABASE


Desteklenmez


Belirtilen bir şema için ifadelerin açıklanmasını destekler.


MySQL istemci yorum işleme


Varsayılan olarak yorumları kaldırır


Varsayılan olarak yorumları korur.


TLS sertifika doğrulaması


Daha esnek davranış


Zorunlu TLS sertifika doğrulamasını destekler.


Enterprise Firewall önbellek yeniden yükleme


Temel olarak başlangıçta veya eklenti yeniden yüklendiğinde yeniden yükler


Periyodik yeniden yüklemeleri destekler.


Enterprise Firewall depolama şeması


Sabit dahili konum


Özel şemayı destekler.


Anahtar halkası bileşeninden eklentiye geçiş


Desteklenmez


Anahtar halkası bileşeninden anahtar halkası eklentisine geçişi destekler.


Yükseltme geçmişi


Eski yükseltme bilgisi dosyası mekanizmasını kullanır


Veri dizini JSON biçimli bir mysql_upgrade_history dosyasını korur.

Ek 5: MySQL 8.0 ile MySQL 5.7 arasındaki özellik farkları

Not

Aşağıdaki tabloda yalnızca MySQL 8.0 ile 5.7 arasındaki bazı önemli farklar listelenmiştir. Diğer farklar hakkında daha fazla bilgi için bkz. MySQL Sürüm Notları.


Özellik


5.7


8.0


GRANT ... IDENTIFIED BY PASSWORD sözdizimi


Desteklenir


Desteklenmez


PASSWORD() fonksiyonu


Desteklenir


Desteklenmez


FLUSH QUERY CACHE ve RESET QUERY CACHE sözdizimi


Desteklenir


Desteklenmez


SQL_MODE sistem değişkeni parametreleri: DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS


Desteklenir


Desteklenmez


GROUP BY sözdizimi için varsayılan otomatik sıralama


Destek


Desteklenmez


EXTENDED veya PARTITIONS anahtar kelimesini içeren sözdizimi


Desteklenir


Desteklenmez


ENCODE(), DECODE() ve ENCRYPT() gibi şifreleme fonksiyonları


Desteklenir


Desteklenmez


Mekansal analiz ile ilgili fonksiyonlar


Desteklenir


Desteklenmez


Daha önce WKB dizesi veya geometri bağımsız değişkenlerini kabul eden ancak artık geometri bağımsız değişkenlerini kabul etmeyen fonksiyonlar


Desteklenir


Desteklenmez


\N ifadesinin NULL olarak ayrıştırılması


Destek


Desteklenmez


PROCEDURE ANALYSE() fonksiyonu


Desteklenir


Desteklenmez


NDB depolama altyapısı kullanarak bölümlenmiş tablolar oluşturma


Desteklenir


Desteklenmez


InnoDB depolama altyapısı kullanarak geçici tabloları sıkıştırma


Desteklenir


Desteklenmez


JSON_APPEND() fonksiyonu


Desteklenir


Desteklenmez


Tablo bölümlerinin paylaşılan bir tablo alanında konumlandırılmasını destekleme


Desteklenir


Desteklenmez


ALTER TABLE ... UPGRADE PARTITIONING sözdizimi


Desteklenir


Desteklenmez

Ek 6: MySQL 5.7 ile MySQL 5.6 arasındaki özellik farkları

Not

Aşağıdaki tabloda MySQL 5.7 ile 5.6 arasındaki önemli farklardan yalnızca bazıları listelenmiştir. Diğer farklar hakkında daha fazla bilgi için bkz. MySQL Sürüm Notları.

Özellik

5.6

5.7

CREATE...AS SELECT GTID modunda

Desteklenir

Desteklenmez

GTID modunda işlemlerde geçici tabloların kullanılması

Desteklenir

Desteklenmez

Bölümlenmiş bir tabloda bölüm anahtarının belirtilmesi

Desteklenir

Desteklenmez

ENGINE_NO_CACHE sözdizimi

Desteklenir

Desteklenmez

Görünmez Dizinler

Desteklenir

Desteklenmez

UPDATE non_affected_rows INSERT sözdizimi

Desteklenir

Desteklenmez

Proxy ile ilgili komutlar

SET komutu yöntemini kullanır

Call Procedure modunu kullanır

TokuDB, Sphinx, RocksDB ve Memory altyapıları

Desteklenir

Desteklenmez

str_ord() işlevi

Desteklenir

Desteklenmez

raiseerror() işlevi

Desteklenir

Desteklenmez

OPTIMIZE TABLE table ASYNC

Desteklenir

Desteklenmez

ENGINE_NO_CACHE

Desteklenir

Desteklenmez

INFORMATION.TABLE_UTILIZATION tablosu

Desteklenir

Desteklenmez

INFORMATION_SCHEMA.INNODB_LOCK_WAITS tablosundaki requesting_thd_id ve blocking_thd_id sütunları

Desteklenir

Desteklenmez

INFORMATION_SCHEMA.INNODB_RSEG tablosu

Desteklenir

Desteklenmez

INFORMATION_SCHEMA.INNODB_IO_STATUS tablosu

Desteklenir

Desteklenmez

Sütun sıkıştırma özelliği

Desteklenir

Desteklenmez

Sorgu Planı Önbelleği

Desteklenir

Desteklenmez

Limit + Union sözdizimi

Parantez gerekli değildir.

Parantez gereklidir.

SHOW FULL PROCESSLIST sözdizimi

MySQL 5.7'de, sonuçtan memory ve query_memory sütunları kaldırılmıştır.

max_statement_time ve max_execution_time

MySQL 5.7'de max_statement_time kaldırılmış, yalnızca max_execution_time korunmuştur.

RDS_SQL_MAX_AFFECTED sözdizimi

MySQL 5.7'de tek bir UPDATE veya DELETE deyiminin etkilediği kayıt sayısını sınırlamak için artık RDS_SQL_MAX_AFFECTED kullanılamaz. Bunun yerine rds_sql_max_affected_rows değişkenini kullanın.

Eşzamanlılık performansı optimizasyonu ayarlamaları

MySQL 5.7'de aşağıdaki parametreler eşzamanlılık denetimi için artık desteklenmemektedir:

  • innodb_adaptive_tickets_algo

  • innodb_min_concurrency_tickets

  • rds_threads_running_ctl_mode

  • rds_threads_running_high_watermark

  • rds_filter_key_cmp_in_order

  • rds_reset_all_filter

  • rds_sql_delete_filter

  • rds_sql_select_filter

  • rds_sql_update_filter

  • rds_strict_concurrency

  • rds_thread_extra_concurrency

  • rds_strict_trx_idle_timeout

  • rds_sql_buf_read_bandwidth

  • rds_sql_buf_read_threshold_bytes

  • rds_sql_buf_write_bandwidth

  • rds_sql_buf_write_threshold_bytes

  • rds_sql_max_iops

Bağlantı sayısı değişkenlerine yönelik ayarlamalar

MySQL 5.7'de aşağıdaki değişkenler kaldırılmıştır:

  • extra_max_connections

  • rds_root_connections

  • rds_sysinfo_connections

  • rds_sysinfo_user_list

Çoğaltmayla ilgili ayarlamalar

  • MySQL 5.7 uyumluluk ayarlamaları:

    • GTID etkin veritabanları ile GTID etkin olmayan veritabanları arasında çoğaltma artık desteklenmemektedir.

    • sql_slave_skip_counter artık GTID'lerle birlikte kullanılamaz.

    • CREATE .... SELECT artık desteklenmemektedir.

  • MySQL 5.7 bağımlı (slave) ile ilgili ayarlamalar:

    • SHOW SLAVE LAG artık desteklenmemektedir.

    • SHOW SLAVE STATUS artık zaman aşımlarını desteklememektedir.

    • SHOW SLAVE STATUS daha az bilgi görüntüler.

    • Bağımlının (slave) sql_thread özelliği artık yürütme zaman aşımlarını desteklememektedir.

    • Bağımlının (slave) sql_thread özelliği artık belirli deyimlerin atlanmasını desteklememektedir.

  • MySQL 5.7 ikili günlük (binary log) ayarlamaları:

    • İletim hızı ayarlaması artık desteklenmemektedir.

    • rds_rpl_receive_buffer_difftime artık desteklenmemektedir.

    • rds_rpl_receive_buffer_size artık desteklenmemektedir.

Günlüklerle ilgili ayarlamalar

MySQL 5.7 hata günlüğü ayarlamaları:

  • SHUTDOWN için IP adresi, kullanıcı ve G/Ç veya ağ gecikme süresi artık kaydedilmemektedir.

  • Yinelenen bir anahtar için tablo adının görüntülenmesi artık desteklenmemektedir.

Eski zaman veri türleri (<u>TIME</u>, <u>DATETIME</u> ve <u>TIMESTAMP</u>)

5.6.4 sürümünden önce eski zaman veri türleri mikrosaniyeleri desteklemiyordu.

Zaman veri türleri mikrosaniye hassasiyetini destekler.

Önemli

5,6'dan 5,7'ye yükseltme sırasında sistem, eski zaman veri türlerine sahip alanlar içeren tabloları algılar ve yeniden oluşturur. Bu durum yükseltme sürecini yavaşlatır.

Ek 7: MySQL 5.5 ve MySQL 5.6 arasındaki özellik farkları

Not

Aşağıdaki tabloda MySQL 5.5 ile 5.6 arasındaki önemli farklardan yalnızca bazıları listelenmiştir. Diğer farklar hakkında daha fazla bilgi için bkz. MySQL 5.6 Referans Kılavuzu.

Özellik

MySQL 5.5

MySQL 5.6

Tam metin dizini

Desteklenmez

Desteklenir

InnoDB çevrimiçi DDL

Desteklenmez

Kısmen desteklenir

REDO

Maksimum 4 GB destekler

Maksimum 512 GB destekler

Kirli sayfa temizleme

Tek iş parçacıklı

Ayrı bir temizleme iş parçacığı kullanır

Temizleme (Purge)

Tek iş parçacıklı

Çok iş parçacıklı

EXCHANGE PARTITION

Desteklenmez

Desteklenir

DML'de açık bölüm seçimi

Desteklenmez

Desteklenir

INFORMATION_SCHEMA

MySQL 5.6, arabellek havuzu hakkında daha fazla bilgi ve tablolar, dizinler ile alanlar hakkında daha fazla meta veri sağlar.

PERFORMANCE_SCHEMA

MySQL 5.6'daki Performance Schema, daha fazla izleme bilgisi ve görüntüleme biçimi ekler.

Çoğaltma

MySQL 5.6'daki çoğaltma iyileştirmeleri ve değişiklikleri şunları içerir:

  • GTID tabanlı çoğaltmayı destekler. GTID tabanlı çoğaltma, gtid_mode ve enforce_gtid_consistency parametreleri tarafından kontrol edilir.

  • İkincil veritabanında birden çok iş parçacığı kullanarak ikili günlüklerin eşzamanlı uygulanmasını destekler.

  • MySQL 5.6'da FLUSH MASTER ve FLUSH SLAVE komutları RESET MASTER ve RESET SLAVE olarak değiştirilmiştir.

  • MySQL 5.6'da SLAVE START ve SLAVE STOP komutları START SLAVE ve STOP SLAVE olarak değiştirilmiştir.

Önemli

Bir RDS for MySQL örneği 5,5'ten 5,6'ya yükseltildikten sonra otomatik olarak GTID tabanlı çoğaltma moduna geçer.

İyileştirici

MySQL 5.6, iyileştiriciyi aşağıdaki özelliklerle geliştirir:

  • Multi-Range Read.

  • Index Condition Pushdown.

  • Optimizer_trace desteği mevcuttur.

Büyük Dosyaları Eşzamansız Olarak Temizle

Desteklenmez

Desteklenir

İş parçacığı havuzu

Desteklenmez

Desteklenir

Performance Agent

Desteklenmez

Desteklenir

Daha Hızlı DDL

Desteklenmez

Desteklenir

Sequence Engine

Desteklenmez

Desteklenir

SSS

  • S: Yükseltme sırasında neden bir örnek geçişi gerçekleşir? Başka ciddi riskler var mı?

    C: Hizmet kararlılığını sağlamak için premium performanslı yerel disklere sahip örnekler önce ikincil düğüm yükseltilerek ve ardından geçiş gerçekleştirilerek yükseltilir. ESSD'lere sahip örnekler ise yeni bir düğüm oluşturularak ve ardından geçiş gerçekleştirilerek yükseltilir. Başka ciddi bir risk bulunmamaktadır. Birincil/ikincil yük devretmenin etkisi hakkında daha fazla bilgi için bkz. Birincil/ikincil yük devretmenin etkisi.

  • S: Birincil ve ikincil düğümler aynı anda mı yükseltilir?

    C: Yüksek performanslı yerel diski yükselttiğinizde önce ikincil örnek, ardından birincil örnek yükseltilir.

  • S: Standart SSD kullanan MySQL 5.7 çalıştıran Basic Edition örneğini nasıl yükseltirim?

    C: Bu tür bir örneği doğrudan yükseltemezsiniz. Standart SSD kullanan MySQL 5,7 çalıştıran Basic Edition örneğini yükseltmek için önce depolama türünü standart SSD'den ESSD'ye değiştirmeniz ve ardından veritabanı sürümünü yükseltmeniz gerekir.

  • S: Veritabanı sürümü yükseltildikten sonra parametre şablonu korunur mu?

    C: Duruma bağlıdır. Örnek, yükseltmeden önce bir sistem parametre şablonu kullanıyorsa otomatik olarak yeni sürüm için karşılık gelen sistem parametre şablonuna geçirilir. Örneğin, MySQL_InnoDB_5.7_High-availability_Performance parametre şablonunu kullanan bir örnek, MySQL 5,7'den 8,0'a yükseltildikten sonra MySQL_InnoDB_8.0_High-availability_Performance parametre şablonuna geçirilir. Ancak örnek özel bir parametre şablonu kullanıyorsa parametre şablonu yükseltmeden sonra korunmaz.

  • S: Veritabanı sürümü yükseltmesi sırasında örneği değiştirebilir miyim?

    C: Hayır, değiştiremezsiniz. Yükseltme tamamlandıktan sonra örnek üzerinde başka işlemler gerçekleştirebilirsiniz.

  • S: Veritabanı sürümü otomatik yükseltmeyi destekliyor mu?

    C: Hayır, desteklemiyor. Otomatik ana sürüm yükseltmeleri desteklenmez.

  • S: Veritabanı sürümünü düşürebilir miyim?

    C: Hayır, konsoldan sürümü doğrudan düşüremezsiniz. Örnekte iş verisi olup olmamasına göre aşağıdaki yöntemlerden birini seçin:

    • İş verisi var: Eski bir sürüm çalıştıran örnek satın alın, DTS kullanarak verileri daha yüksek sürümlü örnekten yeni düşük sürümlü örneğe geçirin ve geçiş tamamlandıktan sonra daha yüksek sürümlü örneği serbest bırakın. Bu işlem dolaylı yoldan veritabanı sürümünü düşürür. Daha fazla bilgi için bkz. RDS örnekleri arasında veri geçişi.

    • İş verisi yok: Orijinal örnekten aboneliği iptal edin ve gerekli eski sürümü çalıştıran yeni bir örnek satın alın. Abonelik tabanlı örnekler için aboneliği iptal etmek üzere para iadesi sürecini izleyin. Kullandıkça öde örnekleri doğrudan serbest bırakın.

  • S: Bir RDS for MySQL örneğini 5.6'dan 5.7'ye veya 5.7'den 8.0'e yükseltirken yükseltme başarısız oluyor. "Geçerli örneğin tam metin dizini vardır ve küçük sürümü 20221130'dan eskidir. Tam metin dizinini silip yeniden oluşturmadan önce küçük sürümü yükseltin" veya "Geçerli örnek, sistem tablespace alanında oluşturulmuş bir tam metin dizini içeriyor. Yükseltmeye devam etmeden önce ilgili tam metin dizinini silin ve yeniden oluşturun" mesajını görüyorum. Bunun nedeni ve çözümü nedir?

    C: Neden ve çözüm aşağıdaki gibidir:

    • Neden

      MySQL'deki geçmiş bir sorun nedeniyle, MySQL 5.6'nın erken bir sürümünde tam metin dizini oluşturduğunuzda bu dizin sistem tablespace alanında oluşturulur. 5.7 veya 8.0 sürümüne yükselttiğinizde sistem tablespace alanındaki bir tam metin dizini tablespace bozulmasına neden olabilir. Bu nedenle veri bozulmasını ve erişilemezliği önlemek için yükseltmeden önce bu sorunu çözmeniz gerekir.

      Not

      Bu sorun RDS for MySQL 5.6 sürüm 20221130'da giderilmiştir. Tam metin dizinleri artık ayrı bir tablespace alanında oluşturulmaktadır.

    • Çözüm

      Önemli

      RDS for MySQL 5.6'nın önceki sürümlerinde tam metin dizinleri sistem tablespace alanında oluşturulur. Bu nedenle RDS for MySQL 5.7'ye yükseltmeden önce yükseltme yaptığınız sürümün RDS for MySQL 5.6 20221130 veya üzeri olduğundan emin olun. Daha eski bir sürüm kullanıyorsanız önce RDS for MySQL 5.6'nın en son sürümüne yükseltin.

      1. İstemdeki tablo adını kullanarak sistem tablespace alanında oluşturulan tam metin dizinini silin.

        # Delete the full-text index.
        ALTER TABLE $table_name DROP INDEX $fts_name;
      2. Tam metin dizinini yeniden oluşturun.

        # Re-create the full-text index.
        ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;
      3. Dizini oluşturduktan sonra geçerli örnekteki tam metin dizinlerini kontrol etmek için aşağıdaki SQL ifadesini çalıştırabilirsiniz. İfade, sistem tablespace alanında oluşturulan tüm tam metin dizinlerini döndürür. Sorgu boş bir sonuç döndürürse RDS for MySQL 5.6'dan RDS for MySQL 5.7'ye yükseltme bu sorun nedeniyle başarısız olmaz.

        # Query for full-text indexes built in the system tablespace.
        SELECT NAME FROM information_schema.INNODB_SYS_TABLES WHERE TABLE_ID IN ( SELECT CONV(SUBSTRING_INDEX(SUBSTRING_INDEX(NAME, '_', -4),'_', 1),16,10) FROM INNODB_SYS_TABLES WHERE NAME LIKE '%fts_00000000%' AND SPACE = 0);
  • S: Bir RDS for MySQL örneğini 5.7'den 8.0'e yükseltirken 267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=' hatası alıyorum. Bunu nasıl ele almalıyım?

    C: MySQL'de karakter kümesini ve karşılaştırmayı kontrol edin. utf8mb4_general_ci kullanıyorsanız bunu utf8mb4_0900_ai_ci olarak değiştirmek için aşağıdaki SQL ifadelerini çalıştırın.

    # Modify the character set and collation of the database.
    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
    # Modify the character set and collation of the table.
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    # Modify the character set and collation of the field.
    ALTER TABLE table_name CHANGE column_name column_name type CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

    MySQL 5.7'de utf8mb4_general_ci karşılaştırmasıyla bir tablo oluşturup ardından MySQL 8.0'a yükseltirseniz sistem varsayılan karşılaştırma olarak utf8mb4_0900_ai_ci kullanır. utf8mb4_general_ci kullanan bir sütunu utf8mb4_0900_ai_ci kullanan bir sütunla karşılaştıran bir sorgu çalıştırırsanız MySQL iki farklı karşılaştırmayı işleyemez ve bu da bir hataya neden olur.

  • S: Salt okunur örneklerin varlığından bağımsız olarak ana sürüm yükseltmesi için geçici bağlantı süresi her zaman 15 saniye midir?

    C: Evet, öyledir. Yükseltmeyi yoğun olmayan saatlerde gerçekleştirmenizi öneririz.

İlgili API işlemleri


API işlemi


Açıklama


RDS MySQL veritabanının ana sürümünü yükseltin


Bir RDS örneğinin ana veritabanı sürümünü yükseltir.