Az Oracle új MySQL 8.4 adatbázis-kezelő ágat alakított ki, és kiadta a MySQL 8.0.37 frissítőjét. A MySQL Community Server 8.4.0 összeállításai minden fő Linux, FreeBSD, macOS és Windows disztribúcióhoz elérhetők. A 8.4.0 kiadás a hosszú távú támogatású (LTS) ágak közé tartozik, amelyeket kétévente adnak ki, és 5 évig támogatnak (plusz 3 év kiterjesztett támogatást is lehet kapni).
A MySQL 8.4.0 a negyedik kiadás a legújabb kiadási modell keretein belül, amely két típusú MySQL ágat foglal magában - az 'Innovation' és az 'LTS' ágakat. Az Innovation ágak, amelyeket a MySQL 8.1, 8.2 és 8.3 alkot, azok számára ajánlottak, akik korábban szeretnék megszerezni az új funkciókat. Ezeket a ágakat három havonta publikálják, és csak a következő jelentős kiadás közzétételéig támogatják (például a 8.4 ág megjelenésével a 8.3 ág támogatása megszűnik). Az LTS ágakat azok számára ajánlják, akiknek kiszámíthatóságra és hosszú távú, változatlan viselkedésre van szükségük. Az LTS ág után egy új Innovation ág fog létrejönni - a MySQL 9.0.
A MySQL 8.4 főbb változásai:
- Az optimalizálóba beépítették a hisztogramok automatikus frissítésének támogatását, függetlenül a szülő tábla 'ANALYZE TABLE' műveletének végrehajtásától. Az automatikus frissítés engedélyezhető az 'AUTO UPDATE' kifejezés megadásával az 'ANALYZE TABLE' művelet végrehajtásakor, és letiltható a 'MANUAL UPDATE' kifejezés megadásával, amely alapértelmezés szerint alkalmazásra kerül.
- Új lehetőségek kerültek bevezetésre: '—keyring-migration-from-component', '—keyring-migration-source' és '—keyring-migration-destination' a keyring komponensből a keyring pluginbe való migrációhoz.
- Új FLUSH_PRIVILEGES jogosultság került bevezetésre, amely ellentétben a korábban elérhető RELOAD jogosultsággal, a felhasználónak csak a 'FLUSH PRIVILEGES' művelet végrehajtására ad jogot.
- Új OPTIMIZE_LOCAL_TABLE jogosultság került hozzáadásra, amely lehetővé teszi a felhasználó számára az 'OPTIMIZE LOCAL TABLE' és az 'OPTIMIZE NO_WRITE_TO_BINLOG TABLE' műveletek végrehajtását.
- Megváltoztak a group_replication_consistency és group_replication_exit_state_action rendszerváltozók alapértelmezett értékei. A group_replication_consistency változó mostantól BEFORE_ON_PRIMARY_FAILOVER értékre van beállítva az EVENTUAL helyett, míg a group_replication_exit_state_action értéke OFFLINE_MODE-ra változott a READ_ONLY helyett.
- Az OpenSSL beágyazott könyvtárával szállított összeállításokban egy új OpenSSL 3.0.13 verziót alkalmaznak.
- A MySQL 5.7-ről a MySQL 8.4-re való közvetlen frissítést leállították. A MySQL 5.7-ről való átálláshoz most először a 8.0 ágra kell lépni, majd azt frissíteni a 8.4-es verzióra.
- Megváltoztak az InnoDB következő beállításainak alapértelmezett értékei: innodb_adaptive_hash_index, innodb_buffer_pool_in_core_file, innodb_buffer_pool_instances, innodb_change_buffering, innodb_doublewrite_files, innodb_doublewrite_pages, innodb_flush_method, innodb_io_capacity, innodb_io_capacity_max, innodb_log_buffer_size, innodb_numa_interleave, innodb_page_cleaners, innodb_parallel_read_threads, innodb_purge_threads, innodb_read_io_threads, innodb_use_fdatasync, temptable_max_ram, temptable_max_mmap és temptable_use_mmap.
- A csomagok összeállításának támogatása hozzáadva a Fedora 40 és Ubuntu 24.04 disztribúciókhoz.
- Alapértelmezés szerint letiltva és elavultnak nyilvánítva a mysql_native_password szerverplugin, amely jelszavas hitelesítést biztosít. A mysql_native_password helyett javasolt a caching_sha2_password plugin használata, amely a SHA2 algoritmust használja a hash-eléshez a SHA1 helyett. A mysql_native_password támogatásának visszaállításához használható a "--mysql-native-password=ON" opció vagy a "mysql_native_password=ON" beállítás.
- A nem biztonságos protokollok és titkosítási algoritmusok támogatását leállították. Csak a TLS v1.2 és TLSv1.3 maradtak, a közvetlen titkosságot (forward secrecy) biztosító algoritmusok, SHA2-vel ellátott titkosítók és tanúsítványok, valamint az AES algoritmusok GCM vagy AEAD módban.
- Az SQL kifejezések eltávolítva a replikációval kapcsolatban, amelyek korábban elavultnak lettek nyilvánítva a politikailag nem megfelelő terminológia használata miatt: START SLAVE (HASZNÁLJA A START REPLICA-t); STOP SLAVE (HASZNÁLJA A STOP REPLICA-t); SHOW SLAVE STATUS (HASZNÁLJA A SHOW REPLICA STATUS-t); SHOW SLAVE HOSTS (SHOW REPLICAS); RESET SLAVE (RESET REPLICA); CHANGE MASTER TO (CHANGE REPLICATION SOURCE TO); RESET MASTER (RESET BINARY LOGS AND GTIDS); SHOW MASTER STATUS (SHOW BINARY LOG STATUS); PURGE MASTER LOGS (PURGE BINARY LOGS); SHOW MASTER LOGS (SHOW BINARY LOGS).
- A korábban elavultnak nyilvánított lehetőségek eltávolítva, amelyek a "CHANGE REPLICATION SOURCE TO" és "START REPLICA" kifejezésekben használták az "master" szót, amelyet "source"-ra cseréltek: MASTER_AUTO_POSITION (helyette használja a SOURCE_AUTO_POSITION-t), MASTER_HOST (helyette használja a SOURCE_HOST-ot), MASTER_BIND (helyette használja a SOURCE_BIND-ot), MASTER_USER (SOURCE_USER), MASTER_PASSWORD (SOURCE_PASSWORD), MASTER_PORT (SOURCE_PORT), MASTER_CONNECT_RETRY (SOURCE_CONNECT_RETRY), MASTER_RETRY_COUNT (SOURCE_RETRY_COUNT), MASTER_DELAY (SOURCE_DELAY), MASTER_SSL (SOURCE_SSL), MASTER_SSL_CA (SOURCE_SSL_CA), MASTER_SSL_CAPATH (SOURCE_SSL_CAPATH), MASTER_SSL_CIPHER (SOURCE_SSL_CIPHER), MASTER_SSL_CRL (SOURCE_SSL_CRL), MASTER_SSL_CRLPATH (SOURCE_SSL_CRLPATH), MASTER_SSL_KEY (SOURCE_SSL_KEY), MASTER_SSL_VERIFY_SERVER_CERT (SOURCE_SSL_VERIFY_SERVER_CERT), MASTER_TLS_VERSION (SOURCE_TLS_VERSION), MASTER_TLS_CIPHERSUITES (SOURCE_TLS_CIPHERSUITES), MASTER_SSL_CERT (SOURCE_SSL_CERT), MASTER_PUBLIC_KEY_PATH (SOURCE_PUBLIC_KEY_PATH), GET_MASTER_PUBLIC_KEY (GET_SOURCE_PUBLIC_KEY), MASTER_HEARTBEAT_PERIOD (SOURCE_HEARTBEAT_PERIOD), MASTER_COMPRESSION_ALGORITHMS (SOURCE_COMPRESSION_ALGORITHMS), MASTER_ZSTD_COMPRESSION_LEVEL (SOURCE_ZSTD_COMPRESSION_LEVEL), MASTER_LOG_FILE (SOURCE_LOG_FILE), MASTER_LOG_POS (SOURCE_LOG_POS).
- Eltávolításra kerültek azok a rendszerváltozók, amelyek az "master" és "slave" szavakat használták: Com_slave_start (helyette használja a Com_replica_start-ot); Com_slave_stop (Com_replica_stop); Com_show_slave_status (Com_show_replica_status); Com_show_slave_hosts (Com_show_replicas); Com_show_master_status (Com_show_binary_log_status); és Com_change_master (Com_change_replication_source).
- A group_replication_allow_local_lower_version_join rendszerváltozót elavultnak nyilvánították. Eltávolításra kerültek a korábban elavultnak nyilvánított lehetőségek: —no-dd-upgrade, —old, —new, —language, —ssl—admin-ssl, valamint a binlog_transaction_dependency_tracking, group_replication_recovery_complete_at, avoid_temporal_upgrade, show_old_temporals és default_authentication_plugin változók.
- Az INFORMATION_SCHEMA.TABLESPACES nem használt táblája eltávolítva.
- Megszűnt a LOW_PRIORITY érték használatának támogatása a "LOCK TABLES … WRITE" kifejezéssel.
- Megszűnt az AUTO_INCREMENT módosító használatának támogatása a FLOAT és DOUBLE típusokkal.
- Eltávolításra került a mysql_ssl_rsa_setup segédprogram — OpenSSL-lel való összeállítás esetén. szerver A MySQL automatikusan képes generálni a hiányzó SSL- és RSA-fájlokat indításkor.
- Eltávolításra került a mysql_upgrade segédprogram, amelyet nem használnak a MySQL 8.0.16 verzióban.
- Eltávolításra kerültek a mysqlpump, lz4_decompress és zlib_decompress segédprogramok, amelyeket a mysqldump segédprogram vagy az interaktív shell dump parancsainak használatával kell helyettesíteni.
- Eltávolításra kerültek a következő bővítmények: authentication_fido, authentication_fido_client (helyette használja az authentication_webauthn-t); keyring_file (helyette használja a component_keyring_file-t); keyring_encrypted_file (helyette használja a component_keyring_encrypted_file-t); keyring_oci (helyette használja a component_keyring_oci-t).
- Leállították az ENGINE kifejezés támogatását, junto de különböző változatait a „DROP TABLESPACE” és „ALTER TABLESPACE” keretein belül.
- Eltávolították a „SET_USER_ID” jogosultságot, amelyet már nem lehet megadni a GRANT kifejezésekben.
- Visszaállították az alábbi API függvényeket: mysql_kill(), mysql_list_fields(), mysql_list_processes(), mysql_refresh(), mysql_reload(), mysql_shutdown() és mysql_ssl_set(), melyek közül egyeseket a mysql_real_query() függvény használatával dolgoztak át. Ezek a függvények a MySQL 8.3 verzióban kerültek eltávolításra, de a MySQL 8.4 LTS ágon történő támogatás érdekében visszaállították őket.
- 26 távoli kihasználásra alkalmas sérülékenységet javítottak. A legkomolyabb probléma 6.5-ös szintű veszélyt jelent, és az openSSL sérülékenységéhez kapcsolódik. A kevésbé veszélyes sérülékenységek az optimalizálót, az InnoDB-t, a Thread Poolingot, a Group Replication Plugin-t, az Audit Plugin-t, a DML-t és a mysqldump-ot érintik.
Forrás: opennet.ru
