Kompania Oracle ka formuar një degë të re të DBMS MySQL 8.4 dhe ka publikuar një përditësim korrektiv MySQL 8.0.37. Ndërtimet e MySQL Community Server 8.4.0 janë përgatitur për të gjitha distribucionet kryesore të Linux, FreeBSD, macOS dhe Windows. Lëshimi 8.4.0 i përket degëve me mbështetje afatgjatë (LTS), të cilat lëshohen një herë në dy vjet dhe mbështeten për 5 vjet (përveç mundësisë për të marrë edhe 3 vjet mbështetje të zgjeruar).
MySQL 8.4.0 është lëshimi i katërt, formuar në kuadër të modelit të ri të formimit të lëshimeve, i cili parashikon ekzistencën e dy llojeve të degëve të MySQL - 'Innovation' dhe 'LTS'. Degët Innovation, të cilat përfshijnë MySQL 8.1, 8.2 dhe 8.3, rekomandohen për ata që duan të kenë akses më herët në funksionalitete të reja. Këto degë publikohen çdo 3 muaj dhe mbështeten vetëm deri në publikimin e lëshimit të ardhshëm të rëndësishëm (p.sh., pas shfaqjes së degës 8.4 ndalohet mbështetja e degës 8.3). Degët LTS rekomandohen për implementime që kanë nevojë për parashikueshmëri dhe ruajtje të qëndrueshmërisë për një periudhë të gjatë. Pas degës LTS do të formohet një degë e re Innovation - MySQL 9.0.
Ndryshimet kryesore në MySQL 8.4:
- Optimizatori ka marrë mbështetje për përditësimin automatike të histogramëve, pa ndodhur operacioni 'ANALYZE TABLE' për tabelën prind. Përditësimi automatike aktivizohet përmes shprehjes 'AUTO UPDATE' gjatë operacionit 'ANALYZE TABLE', dhe çaktivizohet përmes shprehjes 'MANUAL UPDATE', e cila përdoret si e paracaktuar.
- Janë shtuar opsionet '--keyring-migration-from-component', '--keyring-migration-source' dhe '--keyring-migration-destination' për migrimin nga komponenti keyring në plugin keyring.
- ĂshtĂ« shtuar njĂ« privilegj i ri FLUSH_PRIVILEGES, i cili, ndryshe nga privilegji i mĂ«parshĂ«m RELOAD, i jep pĂ«rdoruesit tĂ« drejtat vetĂ«m pĂ«r tĂ« kryer operacionin 'FLUSH PRIVILEGES'.
- ĂshtĂ« shtuar njĂ« privilegj i ri OPTIMIZE_LOCAL_TABLE, qĂ« lejon pĂ«rdoruesin tĂ« kryejĂ« operacionet 'OPTIMIZE LOCAL TABLE' dhe 'OPTIMIZE NO_WRITE_TO_BINLOG TABLE'.
- Janë ndryshuar vlerat e paracaktuara të variablave të sistemit group_replication_consistency dhe group_replication_exit_state_action. Variabla group_replication_consistency tani është caktuar në vlerat BEFORE_ON_PRIMARY_FAILOVER në vend të EVENTUAL, dhe variabla group_replication_exit_state_action në vlerën OFFLINE_MODE në vend të READ_ONLY.
- Në ndërtimet e shpërndara me bibliotekën e përfshirë OpenSSL, është aktivizuar një version i ri OpenSSL 3.0.13.
- Az përfundoi përditësimi i drejtpërdrejtë nga MySQL 5.7 në MySQL 8.4. Për të kaluar nga MySQL 5.7, tani duhet më parë të kaloni në degën 8.0, dhe pastaj ta përditësoni atë në versionin 8.4.
- Janë ndryshuar vlerat për të dhënat e mëposhtme parazgjedhje të InnoDB: 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 dhe temptable_use_mmap.
- Shtuar mbështetje për ndërtimin e paketave për shpërndarjet Fedora 40 dhe Ubuntu 24.04.
- Plugin-i i serverit mysql_native_password, që siguron autentifikimin përmes fjalëkalimeve, është çaktivizuar si parazgjedhje dhe shpallur të vjetëruar. Në vend të mysql_native_password, rekomandohet kalimi në përdorimin e plugin-it caching_sha2_password, që përdor algoritmin SHA2 për hashing në vend të SHA1. Për të rikthyer mbështetje për mysql_native_password, mund të përdorni opsionin "--mysql-native-password=ON" ose konfigurimin "mysql_native_password=ON".
- Mbështetje për protokollet dhe algoritmet e enkriptimit të pasigurta është ndalur. Të lënët vetëm TLS v1.2 dhe TLSv1.3, algoritme që ofrojnë sekrecinë e drejtpërdrejtë (forward secrecy), cifrat dhe certifikatat me SHA2, dhe algoritmet AES në modin GCM ose AEAD.
- Janë hequr shprehjet SQL të lidhura me replikimin, të cilat më parë ishin shpallur të vjetëruara për shkak të përdorimit të terminologjisë jo politikanore: START SLAVE (duhet të përdoret START REPLICA); STOP SLAVE (duhet të përdoret STOP REPLICA); SHOW SLAVE STATUS (duhet të përdoret SHOW REPLICA STATUS); 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).
- Shtyhen opsionet e mëparshme të shpallura si të vjetra, të përdorura në shprehjet «CHANGE REPLICATION SOURCE TO» dhe «START REPLICA», duke përdorur fjalën «master», e cila është zëvendësuar me «source»: SOURCE_AUTO_POSITION (duhet të përdoret SOURCE_AUTO_POSITION), SOURCE_HOST (duhet të përdoret SOURCE_HOST), SOURCE_BIND (duhet të përdoret SOURCE_BIND), SOURCE_USER (SOURCE_USER), SOURCE_PASSWORD (SOURCE_PASSWORD), SOURCE_PORT (SOURCE_PORT), SOURCE_CONNECT_RETRY (SOURCE_CONNECT_RETRY), SOURCE_RETRY_COUNT (SOURCE_RETRY_COUNT), SOURCE_DELAY (SOURCE_DELAY), SOURCE_SSL (SOURCE_SSL), SOURCE_SSL_CA (SOURCE_SSL_CA), SOURCE_SSL_CAPATH (SOURCE_SSL_CAPATH), SOURCE_SSL_CIPHER (SOURCE_SSL_CIPHER), SOURCE_SSL_CRL (SOURCE_SSL_CRL), SOURCE_SSL_CRLPATH (SOURCE_SSL_CRLPATH), SOURCE_SSL_KEY (SOURCE_SSL_KEY), SOURCE_SSL_VERIFY_SERVER_CERT (SOURCE_SSL_VERIFY_SERVER_CERT), SOURCE_TLS_VERSION (SOURCE_TLS_VERSION), SOURCE_TLS_CIPHERSUITES (SOURCE_TLS_CIPHERSUITES), SOURCE_SSL_CERT (SOURCE_SSL_CERT), SOURCE_PUBLIC_KEY_PATH (SOURCE_PUBLIC_KEY_PATH), GET_SOURCE_PUBLIC_KEY (GET_SOURCE_PUBLIC_KEY), SOURCE_HEARTBEAT_PERIOD (SOURCE_HEARTBEAT_PERIOD), SOURCE_COMPRESSION_ALGORITHMS (SOURCE_COMPRESSION_ALGORITHMS), SOURCE_ZSTD_COMPRESSION_LEVEL (SOURCE_ZSTD_COMPRESSION_LEVEL), SOURCE_LOG_FILE (SOURCE_LOG_FILE), SOURCE_LOG_POS (SOURCE_LOG_POS).
- Shtyhen variablat sistemorë, në të cilat janë përdorur fjalët «master» dhe «slave»: Com_replica_start (duhet të përdoret Com_replica_start); Com_replica_stop (Com_replica_stop); Com_show_replica_status (Com_show_replica_status); Com_show_replicas (Com_show_replicas); Com_show_binary_log_status (Com_show_binary_log_status); dhe Com_change_replication_source (Com_change_replication_source).
- Variabla sistemorĂ« group_replication_allow_local_lower_version_join Ă«shtĂ« shpallur si tĂ« vjetruar. Shtyhen opsionet e mĂ«parshme tĂ« shpallura si tĂ« vjetra «âno-dd-upgrade», «âold», «ânew», «âlanguage», «âssl«, «âadmin-ssl» dhe variablat binlog_transaction_dependency_tracking, group_replication_recovery_complete_at, avoid_temporal_upgrade, show_old_temporals dhe default_authentication_plugin.
- Tabela e papërdorur INFORMATION_SCHEMA.TABLESPACES është fshirë.
- Nuk mbështetet më përdorimi i vlerës LOW_PRIORITY me shprehjen «LOCK TABLES ⊠WRITE».
- Nuk mbështetet më përdorimi i modifikatorit AUTO_INCREMENT me tipet FLOAT dhe DOUBLE.
- Utilita mysql_ssl_rsa_setup është fshirë - gjatë ndërtimit me OpenSSL. server MySQL mund të gjenerojë automatikisht skedat mungesë SSL dhe RSA gjatë nisjes.
- Utilita mysql_upgrade është fshirë, e cila nuk përdoret me lëshimin MySQL 8.0.16.
- Ulltin e mysqlpump, lz4_decompress dhe zlib_decompress, të cilat duhet të zëvendësohen me utilitë mysqldump ose komandat e dump-it në një shell interaktive.
- Plugins të fshirë: authentication_fido, authentication_fido_client (duhet të përdoret authentication_webauthn); keyring_file (duhet të përdoret component_keyring_file); keyring_encrypted_file (duhet të përdoret component_keyring_encrypted_file); keyring_oci (duhet të përdoret component_keyring_oci).
- Përkrahja për shprehjen ENGINE është ndërprerë së bashku me variante të ndryshme të «DROP TABLESPACE» dhe «ALTER TABLESPACE».
- Privilegji «SET_USER_ID» është fshirë dhe nuk mund të përcaktohet më në shprehjet GRANT.
- Funksionet e API-së janë rikthyer: mysql_kill(), mysql_list_fields(), mysql_list_processes(), mysql_refresh(), mysql_reload(), mysql_shutdown() dhe mysql_ssl_set(), disa prej të cilave janë ripërpunuar duke përdorur funksionin mysql_real_query(). Këto funksione ishin fshirë në degën MySQL 8.3, por janë rikthyer për mbështetje në degën LTS MySQL 8.4.
- Janë eliminuar 26 vulnerabilitete që mund të shfrytëzohen në distancë. Problemi më i rëndë ka një nivel rreziku prej 6.5 dhe lidhet me një vulnerabilitet në openSSL. Vulnerabilitetet më pak të rrezikshme prekin optimizuesin, InnoDB, Thread Pooling, Group Replication Plugin, Audit Plugin, DML, mysqldump.
Burimi: opennet.ru
