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ıncaching_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ı
-
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
-
MySQL Sunucusunu Yeniden Başlatın
Bu değişiklikleri uygulamak için MySQL sunucusunu yeniden başlatın:
sudo systemctl restart mysql
-
Root Kullanıcısı Olarak Giriş Yapın
Root kullanıcısı olarak MySQL sunucusuna bağlanın:
mysql -u root
-
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. -
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