popüler açık kaynak veritabanı yönetim sisteminin MySQL 8.0.26 ve 5.7.35'inin 8.0.26 Bağlayıcı ve Bileşen ürünleriyle birlikte iki yeni sürümü duyuruldu. MySQL Cluster 8.0.26 da MySQL'in dağıtılmış, paylaşılan hiçbir şey olmayan varyantı olarak duyuruldu.
Bu sürümlerin üretim sistemlerinde kullanılması önerilir ve çeşitli platformlar için kaynak ve ikili biçimde MySQL Topluluğu indirme sayfalarımızdan şu adreste bulunabilir:
https://dev.mysql.com/downloads/
Windows paketleri, daha gelişmiş ihtiyaçlar için Windows için Yükleyici veya .ZIP (kurulum gerektirmeyen) paketleri aracılığıyla kullanılabilir. İşaretle ve tıkla yapılandırma sihirbazları ve tüm MySQL ürünleri, Windows için birleştirilmiş Yükleyici'de mevcuttur:
http://dev.mysql.com/downloads/installer/
MySQL 8.0.26'daki Değişiklikler
Denetim Günlüğü Notları
Önceden, MySQL Enterprise Audit tarafından günlüğe kaydedilen her olay, SQL deyimi değişmez metnini içeriyordu. MySQL 8.0.26'da bir alternatif sağlamak için (çünkü ifadelerin hassas bilgiler içermesi mümkündür), denetim günlüğü filtreleme dili artık bir ifadenin değişmez metni yerine bir ifadenin özetini günlüğe kaydetmeyi destekler. Örneğin, bu ifadeyi günlüğe kaydetmek yerine: SELECT * FROM orders WHERE some_sensitive_column=1234567
Denetim günlüğü eklentisi şu özeti kaydedebilir:SELECT * FROM `orders` WHERE `some_sensitive_column` = ?
Kimlik Doğrulama Notları
Önceden, sunucu tarafından istemcilere gönderilen "merhaba" paketinin bir parçası olarak sunucu, istemci tarafı eklentisi yerine sunucu tarafı kimlik doğrulama eklentisinin adını gönderirdi. Sunucu artık istemcinin ihtiyaçlarına daha uygun olan ve fazladan protokol gidiş dönüşlerinden kaçınmaya yardımcı olabilecek istemci tarafı adını gönderir.
MySQL 8.0.26 Derleme Notları
macOS: Artık ARM üzerinde macOS 11 için MySQL oluşturmak mümkün (yani Apple M1 sistemleri için). (Hata #32386050, Hata #102259)
openSUSE 15 ve SLES 15 üzerine inşa etmek artık paketlerde bulunan GCC 9'u gerektirir gcc-9
ve gcc9-c++
.SLES 12 üzerine inşa etmek artık paketlerde bulunan GCC 10'u gerektirir gcc-10
ve gcc10-c++
. ilgili libmysqlclient
Cı API kitaplığı. (Hata #32886268, Hata #32886439)
Ubuntu 18.04 (biyonik) üzerine inşa etmek artık paketlerde gcc-8
ve g++-8
. libmysqlclient
C API kitaplığına dayalı üçüncü taraf uygulamaları oluştururken de GCC 8'in kullanılması önerilir . (Hata #32877062)
Artık varsayılan ve önerilen derleyici haline gelen GCC 10'u kullanarak Solaris'te MySQL oluşturmak mümkün. Ayrıca, libmysqlclient
C API kitaplığına dayalı üçüncü taraf uygulamaları oluştururken GCC 10 kullanılması önerilir . (Hata #32552988)
Bileşen Notları
Yeni bir bileşen hizmeti, sunucu bileşenlerinin sistem değişkeni değerlerini ayarlamasını sağlar. Bu hizmet hakkında bilgi için , https://dev.mysql.com/doc/index-other.html adresinde bulunan MySQL Server Doxygen belgelerine bakın ( s_mysql_mysql_system_variable_update_string
ve için arayın mysql_system_variable_update_string_imp
).
MySQL 8.0.26 Kullanımdan Kaldırma ve Kaldırma Notları
TLSv1 ve TLSv1.1 bağlantı protokolleri artık kullanımdan kaldırılmıştır ve bunlara yönelik destek, gelecekteki bir MySQL sürümünde kaldırılabilir. (Arka plan için IETF notu TLSv1.0 ve TLSv1.1'in Kullanımdan Kaldırılmasına bakın .) Bağlantıların daha güvenli TLSv1.2 ve TLSv1.3 protokolleri kullanılarak yapılması önerilir. TLSv1.3, hem MySQL sunucusunun hem de istemci uygulamasının OpenSSL 1.1.1 veya üstü ile derlenmesini gerektirir. Sunucu tarafında, bu kullanımdan kaldırmanın aşağıdaki etkileri vardır:
Eğer tls_version
veya admin_tls_version
sistem değişkeni kaldırılmış bir TLS protokolünü içeren bir değer atanır sunucu, her kullanımdan kaldırılmış protokol için bir uyarı üretir:
Atama, sunucu başlatma sırasında gerçekleşirse, hata günlüğünde uyarı görünür.
Atama çalışma zamanında gerçekleşirse, ALTER INSTANCE RELOAD TLS
deyimin yürütülmesinin sonucuna uyarı eklenir .
İstemci, kullanımdan kaldırılmış bir TLS protokolü kullanarak başarıyla bağlanırsa, sunucu hata günlüğüne bir uyarı yazar.
İstemci tarafında, kullanımdan kaldırmanın görünür bir etkisi yoktur. İstemciler, kullanımdan kaldırılmış bir TLS protokolüne izin verecek şekilde yapılandırıldıysa uyarı vermez. Bu içerir:
--tls-version
MySQL sunucusuna bağlantılar için TLS protokolleri belirleme seçeneğini destekleyen istemci programları .
Replikaların kaynak sunucuya bağlantılar için TLS protokollerini belirlemesini sağlayan ifadeler. ( CHANGE REPLICATION SOURCE TO
bir SOURCE_TLS_VERSION
seçeneği vardır ve CHANGE MASTER TO
bir MASTER_TLS_VERSION
seçeneği vardır.)
group_replication_recovery_tls_version
Üyelerine katılmakla sağlayan sistem değişkeni dağıtılan kurtarma bağlantıları için TLS protokollerini belirtmek için.
(Hata #32565996)
temptable_use_mmap
Değişken artık terkedilmiştir ve örneğin gelecekte MySQL sürümünde kaldırılmasına edilir.
MySQL'deki TLS desteği, farklı güvenli bağlantı noktaları veya protokoller için geçerli olan adlandırılmış TLS parametre kümelerini kullanan bir kanal modeline doğru ilerliyor. Örneğin, belirli bir TLS kanalının durumunu sorgulamak için Performans Şeması tls_channel_status
tablosunu kullanın : mysql> SELECT VALUE FROM performance_schema.tls_channel_status WHERE CHANNEL = 'mysql_main' AND PROPERTY = 'Enabled'; +-------+ | VALUE | +-------+ | Yes | +-------+
Bu, bir bütün olarak TLS desteğine uygulanan monolitik parametreleri daha az uygulanabilir hale getirir, bu nedenle aşağıdaki seçenekler ve sistem değişkenleri artık kullanımdan kaldırılmıştır ve bir gelecekteki MySQL sürümü:
--ssl
Ve --admin-ssl
sunucu seçenekleri.
have_ssl
Ve have_openssl
sistem değişkenleri.
--ssl
Ve --admin-ssl
bunları belirtmek normalde gereksizdir böylece seçenekleri, varsayılan olarak etkindir. Bu seçenekleri olumsuzlanmış biçimde belirtmeye bir alternatif olarak, ana veya yönetim arabirimi için şifreli bağlantıları devre dışı bırakmak isteniyorsa, ilgili TLS sürümü sistem değişkenini hiçbir TLS sürümünün desteklenmediğini belirtmek için boş değere ayarlayın. Örneğin, sunucu my.cnf
dosyasındaki şu satırlar, her iki arabirim için de şifreli bağlantıları devre dışı bırakır:[mysqld] tls_version='' admin_tls_version=''
Hata yönetimi
İstemci zaman aşımları için sunucu hata günlüğüne yazılan bilgiler artık (varsa) zaman aşımı değerini ve istemci kullanıcısını ve ana bilgisayarı içerir. (Hata #31581289, Hata #100112)
Etkinlik Zamanlayıcı Notları
Olay Zamanlayıcı etkinleştirilirse, super_read_only
sistem değişkeninin etkinleştirilmesi, events
veri sözlüğü tablosundaki "son yürütülen" olay zaman damgalarını güncellemesini engeller . Bu, sunucu hata günlüğüne bir mesaj yazdıktan sonra, Etkinlik Zamanlayıcı'nın programlanmış bir olayı bir sonraki yürütmeye çalıştığında durmasına neden olur. Önceden, Etkinleştirmek super_read_only
Olay Zamanlayıcı'nın durmasına neden oluyorsa , daha sonra devre dışı bırakıldıktan sonra super_read_only
, manuel olarak yeniden başlatılması gerekiyordu. Olay Zamanlayıcı'yı tekrar etkinleştirerek. Kolaylık sağlamak için, sunucu super_read_only
devre dışı bırakıldığında artık Olay Zamanlayıcı'yı gerektiği gibi otomatik olarak yeniden başlatır . (Hata #31633859)
MySQL 8.0.26 Güvenlik Duvarı Notları
MySQL 8.0.23'te, MySQL Enterprise Firewall, her biri tek bir hesap için geçerli olan önceden uygulanmış hesap profillerine ek olarak, her biri birden fazla hesaba uygulanabilen grup profilleri uyguladı. Bkz . MySQL Kurumsal Güvenlik Duvarını Kullanma .Tek bir üye hesabı olan bir grup profili, mantıksal olarak o hesap için bir hesap profiline eşdeğerdir, bu nedenle güvenlik duvarını, hesap ve grup profillerinin bir karışımı yerine yalnızca grup profillerini kullanarak yönetmek mümkündür. Yeni güvenlik duvarı kurulumları için, bu, grup profilleri olarak tek tip yeni profiller oluşturarak ve hesap profillerinden kaçınarak gerçekleştirilir. Zaten hesap profilleri içeren güvenlik duvarı kurulumlarından yükseltmeler için, MySQL Enterprise Firewall artık sp_migrate_firewall_user_to_group()
hesap profillerini grup profillerine dönüştürmek için.Grup profillerinin sunduğu daha fazla esneklik nedeniyle, hesap profilleriyle ilgili güvenlik duvarının tüm yönleri artık kullanımdan kaldırılmıştır ve gelecekteki bir MySQL sürümünde kaldırılabilir:
INFORMATION_SCHEMA
tablolar: MYSQL_FIREWALL_USERS
, MYSQL_FIREWALL_WHITELIST
mysql
sistem şeması tabloları: firewall_users
, firewall_whitelist
mysql
sistem şeması saklı yordamlar: sp_reload_firewall_rules()
, sp_set_firewall_mode()
Yüklenebilir fonksiyonlar: read_firewall_users()
, read_firewall_whitelist()
, set_firewall_mode()
Ayrıca, sunucu başlangıçta hesap profilleri algılarsa, başarıyla yüklenen her hesap profili için bir uyarı yazar. Hesap profillerini grup profillerine dönüştürme hakkında bilgi için (ki bunu en kısa zamanda yapmanız gerekir), bkz. Hesap Profillerini Grup Profillerine Taşıma .
MySQL 8.0.26 Paketleme Notları
curl
Sistem curl
kitaplığına bağlanmak yerine içeren ikili paketler, curl
7.77.0'ı kullanacak şekilde yükseltildi . (Hata #33077562)
Ubuntu paketleri için, mysqld için AppArmor profili, PID ve soket dosya adları açısından çok kısıtlayıcıydı ve profildeki tam adları kullanmayan sunucular için başarısız oldu. Artık profil, dosyaların yaşadığı dizinlere uygulanarak farklı dosya adları ve birden çok sunucu için geçerli olmasını sağlar. (Hata #32857611)
dh-systemd
Üzerinde bağımlılık o dağıtım için inşa MySQL paketleri kaldırıldı böylece paket, Ubuntu 21.04 kaldırıldı. (Hata #32688072)
Debian paketleri EnvironmentFile
için, sistemd hizmetinin /etc/default/mysql
mevcutsa dosyadan çevresel değişkenleri okumasını sağlamak için bir yönerge eklendi . (Hata #32082863, Hata #101363)
Debian paketleri artık yol adları /run
yerine kullanılıyor /var/run
. (Hata #31955638)
Paketlenmiş lz4
kitaplık 1.9.3 sürümüne yükseltildi. (Hata #29747853)
Debian paketleri için, update-alternatives
MySQL yapılandırma dosyasının önceliği, önceden kurulmuş bir dağıtımdaki mevcut bir dosyanın yerini almasını sağlamak için artırıldı. (Hata #29606955)
Takılabilir Kimlik Doğrulama
Linux: MySQL Enterprise Edition artık, uygun Kerberos biletlerinin mevcut olması veya alınabilmesi koşuluyla, kullanıcıların Kerberos kullanarak MySQL Sunucusunda kimlik doğrulaması yapmasına olanak tanıyan bir kimlik doğrulama yöntemini desteklemektedir. Ayrıntılar için bkz. Kerberos Takılabilir Kimlik Doğrulama .Bu kimlik doğrulama yöntemi authentication_kerberos
, sunucu tarafında ve authentication_kerberos_client
istemci tarafında bir çift eklenti kullanır . Yalnızca Linux çalıştıran MySQL sunucusunda ve istemci ana bilgisayarlarında bulunur, ancak Linux olmayan ana bilgisayarlarda çalışan Kerberos hizmetlerine erişebilir.
Sunucu Yönetimi
innodb_strict_mode
Sistem değişkeninin oturum değerini ayarlamak artık kısıtlı bir işlemdir ve oturum kullanıcısı, kısıtlı oturum değişkenlerini ayarlamak için yeterli ayrıcalıklara sahip olmalıdır. Kısıtlı oturum değişkenlerini ayarlamak için gereken ayrıcalıklar hakkında bilgi için, bkz. Sistem Değişkeni Ayrıcalıkları . (Hata #32944980)
MySQL 8.0.26 Mekansal Veri Desteği
ST_Buffer()
İşlev artık geometri noktası değeri ise, coğrafi bir uzamsal referans sistemi (SRS), geometri argüman sağlar. Önceden, ST_Buffer()
bir Kartezyen SRS'de yalnızca geometri bağımsız değişkenleri desteklenirdi. ST_Difference()
Ve ST_Union()
işlevleri artık coğrafi bir SRS sahip olmak geometri argümanları izin verir. Önceden ST_Difference()
ve ST_Union()
yalnızca Kartezyen SRS'de geometri bağımsız değişkenlerini desteklerdi. Bkz. Uzamsal Operatör İşlevleri .
X Eklenti Notları
Bir Session.run_sql()
önbelleğe alma sorunu nedeniyle birden çok sonuç döndüren bir sorguyu yürütmek için X DevAPI yöntemi kullanıldığında, result.columns
özellik etkin olmasına rağmen etkin sonuçta bulunan sütunları yansıtacak şekilde güncellenmedi result.column_names
. (Hata #32887586)
Yükseltme işlemi sırasında, X Plugin, TCP bağlantı noktası ve UNIX soketi tahsis edildikten sonra bağlantılara hazır olduğunu belirten bir mesaj kaydetti. Ancak, yükseltme işlemi tamamlanana kadar bağlantılar kabul edilemezdi. Mesaj şimdi yalnızca yükseltme tamamlandıktan sonra verilir. (Hata #32814997)
MySQL 8.0.26 ile ilgili daha fazla değişiklik ve güncelleme https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-26.html adresinde mevcuttur.