Oracle on loonud uue MySQL 8.4 andmebaasi haru ning avaldanud parandusteo vÀrskenduse MySQL 8.0.37. MySQL Community Server 8.4.0 versioonid on toodetud kÔigi peamiste Linuxi, FreeBSD, macOS ja Windowsi jaotuste jaoks. VÀljalase 8.4.0 kuulub pikaajalise toe (LTS) harude hulka, mis vÀljastatakse iga kahe aasta tagant ja mida toetatakse 5 aastat (pluss on vÔimalik saada veel 3 aastat laiendatud tuge).
MySQL 8.4.0 on neljas versioon, mis on loodud uue versioonimudeli raames, mis hĂ”lmab kahte tĂŒĂŒpi MySQL haru - "Innovation" ja "LTS". Innovation harud, kuhu kuuluvad MySQL 8.1, 8.2 ja 8.3, on soovitatavad neile, kes soovivad varakult ligipÀÀsu uuele funktsionaalsusele. Need harud avaldatakse iga 3 kuu tagant ja neid toetatakse ainult kuni jĂ€rgmise olulisema versiooni avaldamiseni (nĂ€iteks pĂ€rast 8.4 haru ilmumist lĂ”petatakse 8.3 haru toetus). LTS-harud on soovitatavad rakendustele, kus on vajalik prognoositavus ja pikaajaline muutumatuse sĂ€ilitamine. LTS-haru jĂ€rel luuakse uus Innovation-haru - MySQL 9.0.
Peamised muudatused MySQL 8.4:
- Optimeerijasse on lisatud toetust automaatsele histogrammi vÀrskendamisele, sÔltumatult "ANALYZE TABLE" operatsiooni tÀitmisest pÔhitable jaoks. Automaatne vÀrskendamine aktiveeritakse, kui kasutatakse vÀljendit "AUTO UPDATE" tÀites "ANALYZE TABLE" operatsiooni, ja deaktiveeritakse vÀljendiga "MANUAL UPDATE", mis on vaikimisi kasutatav.
- Lisatud on valikud "--keyring-migration-from-component", "--keyring-migration-source" ja "--keyring-migration-destination" keyring komponentide migratsiooniks keyring pistikprogrammiks.
- Lisatud on uus privileeg FLUSH_PRIVILEGES, mis, erinevalt varem saadaval olnud privileegist RELOAD, annab kasutajale Ôiguse ainult FLUSH PRIVILEGES operatsiooni tÀitmiseks.
- Lisatud on uus privileeg OPTIMIZE_LOCAL_TABLE, mis vÔimaldab kasutajal tÀita "OPTIMIZE LOCAL TABLE" ja "OPTIMIZE NO_WRITE_TO_BINLOG TABLE" operatsioone.
- Muudetud on sĂŒsteemimuutujate group_replication_consistency ja group_replication_exit_state_action vaikevÀÀrtuseid. group_replication_consistency muutuja mÀÀratakse nĂŒĂŒd vÀÀrtuseks BEFORE_ON_PRIMARY_FAILOVER, mitte EVENTUAL, ja group_replication_exit_state_action muutuja vÀÀrtuseks OFFLINE_MODE, mitte READ_ONLY.
- Kogudes, mis on varustatud integreeritud OpenSSL raamatukoguga, on kasutusele vÔetud uus versioon OpenSSL 3.0.13.
- Otsetud otseuuendamine MySQL 5.7-st MySQL 8.4-le on lĂ”petatud. Ăleminekuks MySQL 5.7-lt tuleb esmalt minna versioonile 8.0 ja seejĂ€rel uuendada see versioonile 8.4.
- Muutunud on InnoDB jÀrgmiste seadete vaikeseaded: 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 ja temptable_use_mmap.
- Toetatakse pakettide koostamist distributsioonidele Fedora 40 ja Ubuntu 24.04.
- Serveri plugin mysql_native_password, mis tagab autentimise paroolide abil, on vaikimisi keelatud ja kuulutatud aegunuks. Soovitatav on minna ĂŒle caching_sha2_password plugina kasutamisele, mis kasutab rĂ€simiseks SHA2 algoritmi SHA1 asemel. mysql_native_password toe taastamiseks vĂ”ib kasutada valikut "âmysql-native-password=ON" vĂ”i seadistust "mysql_native_password=ON".
- Toetamine ebausaldusvÀÀrsete protokollide ja krĂŒptimisalgoritmide jaoks on lĂ”petatud. Alles on jĂ€etud ainult TLS v1.2 ja TLSv1.3, algoritmid, mis tagavad edasise salajasuse (forward secrecy), ĆĄifrid ja sertifikaadid koos SHA2-ga ning AES algoritmid GCM vĂ”i AEAD reĆŸiimis.
- Eemaldatud on replikatsiooniga seotud SQL-lauseid, mis olid varem kuulutatud aegunuks poliitiliselt vale terminoloogia tÔttu: START SLAVE (tuleb kasutada START REPLICA); STOP SLAVE (tuleb kasutada STOP REPLICA); SHOW SLAVE STATUS (tuleb kasutada 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).
- Eemaldatud on varem vÀljakuulutatud aegunud valikud, mida kasutati vÀljendites «CHANGE REPLICATION SOURCE TO» ja «START REPLICA», ning mille puhul kasutati sÔna «master», mis on asendatud sÔnaga «source»: SOURCE_AUTO_POSITION (kasutage SOURCE_AUTO_POSITION), SOURCE_HOST (kasutage SOURCE_HOST), SOURCE_BIND (kasutage 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_CIPHER_SUITE), 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).
- Eemaldatud on sĂŒsteemimuutujad, kus kasutati sĂ”nu «master» ja «slave»: Com_slave_start (kasutage Com_replica_start); 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); ja Com_change_master (Com_change_replication_source).
- SĂŒsteemimuutuja group_replication_allow_local_lower_version_join on kuulutatud aegunud. Eemaldatud on varem vĂ€ljakuulutatud aegunud valikud «âno-dd-upgrade», «âold», «ânew», «âlanguage», «âssl«, «âadmin-ssl» ja muutujad binlog_transaction_dependency_tracking, group_replication_recovery_complete_at, avoid_temporal_upgrade, show_old_temporals ja default_authentication_plugin.
- Kasutamata INFORMATION_SCHEMA.TABLESPACES tabel on eemaldatud.
- Toetamine, mis lubas kasutada vÀÀrtust LOW_PRIORITY koos vÀljendiga «LOCK TABLES ⊠WRITE», on lÔpetatud.
- Toetamine, mis lubas kasutada modifikaatorit AUTO_INCREMENT koos tĂŒĂŒpidega FLOAT ja DOUBLE, on lĂ”petatud.
- Eemaldatud on utiliit mysql_ssl_rsa_setup â OpenSSL-i kogumisel. server MySQL suudab kĂ€ivitamisel automaatselt genereerida puuduvad SSL- ja RSA-failid.
- Eemaldatud on utiliit mysql_upgrade, mida ei kasutata MySQL 8.0.16 vÀljaandes.
- Eemaldatud on utiliidid mysqlpump, lz4_decompress ja zlib_decompress, mille asemel tuleks kasutada utiliiti mysqldump vÔi kÀske dump interaktiivses shellis.
- Eemaldatud on pluginad: authentication_fido, authentication_fido_client (kasutage authentication_webauthn); keyring_file (kasutage component_keyring_file); keyring_encrypted_file (kasutage component_keyring_encrypted_file); keyring_oci (kasutage component_keyring_oci).
- Toetatud on âENGINEâ vĂ€ljend koos erinevate variantidega nagu âDROP TABLESPACEâ ja âALTER TABLESPACEâ.
- âSET_USER_IDâ Ă”igust enam ei saa kanda GRANT vĂ€ljendites.
- C API funktsioonid: mysql_kill(), mysql_list_fields(), mysql_list_processes(), mysql_refresh(), mysql_reload(), mysql_shutdown() ja mysql_ssl_set() on tagasi toodud, neist osa on ĂŒmber kirjutatud mysql_real_query() funktsiooni kasutades. Need funktsioonid eemaldati MySQL 8.3 harust, kuid taastati LTS-haru MySQL 8.4 kontekstis.
- Korahandi 26 haavatavust, mida saab kaugelt Àra kasutada. TÔsiseim probleem omab ohtlikkuse taset 6.5 ja on seotud openSSL haavatavusega. VÀhem ohtlikud haavatavused puudutavad optimeerijat, InnoDB-d, Thread Poolingit, Group Replication Plugin'i, Audit Plugin'i, DML'i, mysqldump'i.
Allikas: opennet.ru
