mysql9.webp

Dünya çapında en popüler olan açık kaynaklı MySQL'in son sürümü olan 9, performans, güvenlik ve geliştirici deneyimini artıran yeni özellikler ile birlikte geliyor. Bu blog yazısında, MySQL 9’daki önemli değişikliklere, kaldırılan özelliklere ve gelecekte bizleri nelerin beklediğine kısaca göz atacağız.

MySQL 9’da Neler Yeni?

1. JSON Desteğinde İyileştirmeler

MySQL 9, JSON işlevselliğini daha da ileriye taşıyor:

  • Şema Doğrulama: JSON verisinin tanımlı şemalara uygun olmasını sağlayarak veri bütünlüğünü artırıyor.
  • JSON İndeksleme: JSON sütunlarına indeks ekleyerek sorgulamaları hızlandırıyor ve veriye daha hızlı erişim sağlıyor.
  • Yeni JSON Fonksiyonları: Gelişmiş JSON fonksiyonları ile JSON verisi üzerinde daha verimli işlemler yapmayı kolaylaştırıyor.

2. JavaScript Destekli Saklı Prosedürler

MySQL 9’da, geliştiricilerin prosedür ve fonksiyonları JavaScript ile yazabilmesine olanak tanıyan JavaScript saklı program desteği dikkat çekiyor. Enterprise Edition’da sunulan bu özellik, JavaScript’in yaygın olarak kullanıldığı modern uygulama ortamlarına uyum sağlıyor.

3. Makine Öğrenimi için VECTOR Veri Türü

Yeni VECTOR veri türü, tekil-precisionlı kayan noktalı sayıların sabit uzunluklu dizilerini saklamayı sağlıyor. Bu, MySQL’i makine öğrenimi uygulamalarına daha uygun hale getirerek, vektör verilerinin verimli şekilde saklanmasını ve işlenmesini mümkün kılıyor.

4. Güvenlik Geliştirmeleri

Güvenlik, MySQL 9’un odak noktalarından biri ve şu iyileştirmeleri içeriyor:

  • Modern Şifreleme Seçenekleri: SHA-3 gibi algoritmalar için genişletilmiş destek sunarak kurumsal güvenlik ihtiyaçlarına cevap veriyor.
  • OpenID Connect Entegrasyonu: OpenID Connect desteği ile OAuth2 sistemleriyle doğrudan tek oturum açma entegrasyonunu kolaylaştırıyor.

5. Yedekleme ve Kurtarma İyileştirmeleri

MySQL 9, yedekleme işlemlerini daha verimli hale getiriyor:

  • Artan Yedekleme Desteği: Yalnızca son yedekten sonraki değişiklikleri kaydediyor, böylece yedekleme süresini ve depolama maliyetlerini düşürüyor.
  • Zaman Noktası Kurtarma: Belirli anlara daha hassas bir şekilde geri yükleme yapmayı mümkün kılarak yüksek erişilebilirlik sistemleri için vazgeçilmez bir özellik sunuyor.

Kaldırılan Özellikler

MySQL’i daha verimli hale getirmek için bazı eski özellikler artık kullanımdan kaldırılıyor. Öne çıkan değişiklikler şunlar:

  • mysql_native_password Eklentisinin Kaldırılması: Bu kimlik doğrulama eklentisi artık MySQL 9’da mevcut değil. Bu eklentiye dayanan uygulamaların caching_sha2_password gibi daha güvenli alternatiflere geçiş yapması gerekiyor.

Kaldırılan Kimlik Doğrulama Yöntemlerini Güncelleme (mysql_native_password)

mysql_native_password kimlik doğrulama eklentisini kullananlar için, MySQL 9’a uyumlu bir yöntem kullanmaya geçmek adına aşağıdaki adımları izleyebilirsiniz. Bu geçiş sırasında güvenliği riske atmamak adına adımları dikkatle takip edebilirsiniz:

Kimlik Doğrulama Yöntemini Güncelleme Adımları

  1. Geçici Olarak Grant Tablolarını Devre Dışı Bırakın

    MySQL yapılandırma dosyanızı (/etc/my.cnf veya /etc/mysql/my.cnf) düzenleyerek [mysqld] bölümüne aşağıdaki satırı ekleyin:

    [mysqld]
    skip-grant-tables
    
  2. MySQL Sunucusunu Yeniden Başlatın

    Bu değişiklikleri uygulamak için MySQL sunucusunu yeniden başlatın:

    sudo systemctl restart mysql
    
  3. Root Kullanıcısı Olarak Giriş Yapın

    Root kullanıcısı olarak MySQL sunucusuna bağlanın:

    mysql -u root
    
  4. Kimlik Doğrulama Yöntemini Güncelleyin

    mysql_native_password kullanan kullanıcıları belirleyin ve kimlik doğrulama yöntemlerini güncelleyin:

    SELECT User, Host, plugin FROM mysql.user WHERE plugin = 'mysql_native_password';
    

    Listelenen her kullanıcı için şu komutu çalıştırın:

    ALTER USER 'kullanici'@'host' IDENTIFIED WITH caching_sha2_password BY 'sifre';
    

    'kullanici', 'host' ve 'sifre' ifadelerini ilgili değerlerle değiştirin.

  5. Grant Tablolarını Tekrar Etkinleştirin

    Yapılandırma dosyanızdaki skip-grant-tables satırını kaldırarak ya da yoruma alarak grant tablolarını tekrar etkinleştirin ve değişikliklerin geçerli olması için MySQL’i yeniden başlatın:

    sudo systemctl restart mysql
    

Bu konuyla ilgili daha fazla bilgi için mysql_native_password kaldırılması hakkında GitHub tartışmasına göz atabilirsiniz.

MySQL İçin Sırada Ne Var?

Oracle, iki yılda bir büyük güncellemeler yayınlama planını sürdürüyor. MySQL 9, gelecekteki iyileştirmeler için güçlü bir temel oluşturuyor. Bu sayede daha sık artan güncellemeler ve güvenlik yamaları ile MySQL, veritabanı teknolojilerinin ön saflarında yer almaya devam edecek.

“Yazmak, geleceği görmektir.” Paul Valéry