Uzņēmums Oracle ir izveidojis jaunu MySQL 8.4 datubāzu filiāli un publicējis labojumu atjauninājumu MySQL 8.0.37. MySQL Community Server 8.4.0 izlaidumi ir sagatavoti visām galvenajām Linux, FreeBSD, macOS un Windows izplatīšanas versijām. 8.4.0 izlaidums ir klasificēts kā ilgtermiņa atbalsta (LTS) filiāle, kas tiek izlaista reizi divos gados un tiek atbalstīta 5 gadus (plus var saņemt papildu 3 gadu atbalstu).
MySQL 8.4.0 ir ceturtais izlaidums, kas izstrādāts jaunajā izlaidumu veidošanas modelī, kas paredz divu veidu MySQL filiāles — «Inovācija» un «LTS». Inovācijas filiāles, kurās ietilpst MySQL 8.1, 8.2 un 8.3, ieteicamas tiem, kas vēlas ātrāk piekļūt jaunām funkcijām. Šīs filiāles tiek publicētas ik pēc 3 mēnešiem un tiek atbalstītas tikai līdz nākamā nozīmīgā izlaiduma publicēšanai (piemēram, pēc filiāles 8.4 publicēšanas filiāles 8.3 atbalsts tiek pārtraukts). LTS filiāles ir ieteicamas ieviešanai, kurām nepieciešama prognozējamība un ilggadēja nemainīga uzvedība. Pēc LTS filiāles tiks izveidota jauna inovācijas filiāle — MySQL 9.0.
Galvenās izmaiņas MySQL 8.4:
- Optimizatorā pievienota automātiskā histogrāmu atjauninājumu atbalsts bez operācijas «ANALYZE TABLE» izpildes vecāku tabulēm. Automātiskā atjaunināšana tiek ieslēgta, izmantojot izteiksmi «AUTO UPDATE» operācijas «ANALYZE TABLE» izpildē, un tiek izslēgta, izmantojot izteiksmi «MANUAL UPDATE», kas tiek izmantota noklusējuma režīmā.
- Pievienotas opcijas «—keyring-migration-from-component», «—keyring-migration-source» un «—keyring-migration-destination» migrēšanai no keyring komponenta uz keyring spraudni.
- Pievienota jauna privilēģija FLUSH_PRIVILEGES, kas, atšķirībā no iepriekš pieejamās privilēģijas RELOAD, lietotājam piešķir tiesības tikai izpildīt operāciju «FLUSH PRIVILEGES».
- Pievienota jauna privilēģija OPTIMIZE_LOCAL_TABLE, kas ļauj lietotājam izpildīt operācijas «OPTIMIZE LOCAL TABLE» un «OPTIMIZE NO_WRITE_TO_BINLOG TABLE».
- Mainīti noklusējuma vērtības sistēmas mainīgajiem group_replication_consistency un group_replication_exit_state_action. Mainīgais group_replication_consistency tagad ir iestatīts uz vērtībām BEFORE_ON_PRIMARY_FAILOVER, nevis EVENTUAL, bet mainīgais group_replication_exit_state_action uz vērtību OFFLINE_MODE, nevis READ_ONLY.
- Versijās, kas piegādātas ar iebūvēto OpenSSL bibliotēku, ir izmantota jaunā OpenSSL 3.0.13 versija.
- Tiesības pārtraukt tiešo atjaunināšanu no MySQL 5.7 uz MySQL 8.4. Lai pārietu no MySQL 5.7, vispirms ir jāveic pāreja uz 8.0, un tikai tad jāatjaunina uz 8.4.
- Mainīti noklusējuma vērtības šādām InnoDB iestatījumu vērtībām: 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 un temptable_use_mmap.
- Pievienota atbalsts pakotņu izveidei Fedora 40 un Ubuntu 24.04 izdalei.
- Servera spraudņi mysql_native_password, kas nodrošina autentifikāciju ar parolēm, ir atspējoti pēc noklusējuma un atzīti par novecojušiem. Ieteicams pāriet uz caching_sha2_password spraudni, kas hēšo ar SHA2 algoritmu, nevis ar SHA1. Lai atjaunotu mysql_native_password atbalstu, var izmantot opciju "—mysql-native-password=ON" vai iestatījumu "mysql_native_password=ON".
- Ir pārtraukta atbalsta sniegšana neauglīgajiem protokoliem un šifrēšanas algoritmiem. Atstāti tikai TLS v1.2 un TLSv1.3, algoritmi, kas nodrošina tiešo noslēpumainību (forward secrecy), šifrēšanas un sertifikāti ar SHA2 un AES algoritmiem GCM vai AEAD režīmā.
- Tika izdzēsti SQL izteikumi, kas saistīti ar replicēšanu un iepriekš tika atzīti par novecojušiem, jo bija izmantota nepiemērota terminoloģija: START SLAVE (jāizmanto START REPLICA); STOP SLAVE (jāizmanto STOP REPLICA); SHOW SLAVE STATUS (jāizmanto 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).
- Iepriekšējās versijās izmantotās novecojušās opcijas, kas attiecās uz izteikumiem «CHANGE REPLICATION SOURCE TO» un «START REPLICA», un kurās tika lietots vārds «master», tagad nomainīts uz «source»: SOURCE_AUTO_POSITION (jāizmanto SOURCE_AUTO_POSITION), SOURCE_HOST (jāizmanto SOURCE_HOST), SOURCE_BIND (jāizmanto SOURCE_BIND), SOURCE_USER (jāizmanto SOURCE_USER), SOURCE_PASSWORD (jāizmanto SOURCE_PASSWORD), SOURCE_PORT (jāizmanto SOURCE_PORT), SOURCE_CONNECT_RETRY (jāizmanto SOURCE_CONNECT_RETRY), SOURCE_RETRY_COUNT (jāizmanto SOURCE_RETRY_COUNT), SOURCE_DELAY (jāizmanto SOURCE_DELAY), SOURCE_SSL (jāizmanto SOURCE_SSL), SOURCE_SSL_CA (jāizmanto SOURCE_SSL_CA), SOURCE_SSL_CAPATH (jāizmanto SOURCE_SSL_CAPATH), SOURCE_SSL_CIPHER (jāizmanto SOURCE_SSL_CIPHER), SOURCE_SSL_CRL (jāizmanto SOURCE_SSL_CRL), SOURCE_SSL_CRLPATH (jāizmanto SOURCE_SSL_CRLPATH), SOURCE_SSL_KEY (jāizmanto SOURCE_SSL_KEY), SOURCE_SSL_VERIFY_SERVER_CERT (jāizmanto SOURCE_SSL_VERIFY_SERVER_CERT), SOURCE_TLS_VERSION (jāizmanto SOURCE_TLS_VERSION), SOURCE_TLS_CIPHERSUITES (jāizmanto SOURCE_TLS_CIPHERSUITES), SOURCE_SSL_CERT (jāizmanto SOURCE_SSL_CERT), SOURCE_PUBLIC_KEY_PATH (jāizmanto SOURCE_PUBLIC_KEY_PATH), GET_SOURCE_PUBLIC_KEY (jāizmanto GET_SOURCE_PUBLIC_KEY), SOURCE_HEARTBEAT_PERIOD (jāizmanto SOURCE_HEARTBEAT_PERIOD), SOURCE_COMPRESSION_ALGORITHMS (jāizmanto SOURCE_COMPRESSION_ALGORITHMS), SOURCE_ZSTD_COMPRESSION_LEVEL (jāizmanto SOURCE_ZSTD_COMPRESSION_LEVEL), SOURCE_LOG_FILE (jāizmanto SOURCE_LOG_FILE), SOURCE_LOG_POS (jāizmanto SOURCE_LOG_POS).
- Ir noņemtas sistēmiskās mainīgās, kurās tika izmantoti vārdi «master» un «slave»: Com_replica_start (jāizmanto Com_replica_start); Com_replica_stop (jāizmanto Com_replica_stop); Com_show_replica_status (jāizmanto Com_show_replica_status); Com_show_replicas (jāizmanto Com_show_replicas); Com_show_binary_log_status (jāizmanto Com_show_binary_log_status); un Com_change_replication_source (jāizmanto Com_change_replication_source).
- Sistēmas mainīgā group_replication_allow_local_lower_version_join ir pasludināta par novecojušu. Ir noņemtas iepriekšējās versijās izmantotās novecojušās opcijas «—no-dd-upgrade», «—old», «—new», «—language», «—ssl«, «—admin-ssl» un mainīgie binlog_transaction_dependency_tracking, group_replication_recovery_complete_at, avoid_temporal_upgrade, show_old_temporals un default_authentication_plugin.
- Ir noņemta neizmantojamā tabula INFORMATION_SCHEMA.TABLESPACES.
- Atbalsts LOW_PRIORITY vērtības izmantošanai kopā ar izteiksmi «LOCK TABLES … WRITE» ir pārtraukts.
- Atbalsts AUTO_INCREMENT modifikatora izmantošanai kopā ar FLOAT un DOUBLE tipiem ir pārtraukts.
- Ir noņemta rīks mysql_ssl_rsa_setup — kad tiek veidots ar OpenSSL. servera MySQL var automātiski ģenerēt trūkstošos SSL un RSA failus palaišanas laikā.
- Ir noņemta rīks mysql_upgrade, kas netiek izmantots ar MySQL versiju 8.0.16.
- Ir noņemti rīki mysqlpump, lz4_decompress un zlib_decompress, kuru vietā jāizmanto rīks mysqldump vai komandas dump interaktīvajā saskarnē.
- Ir noņemti spraudņi: authentication_fido, authentication_fido_client (jāizmanto authentication_webauthn); keyring_file (jāizmanto component_keyring_file); keyring_encrypted_file (jāizmanto component_keyring_encrypted_file); keyring_oci (jāizmanto component_keyring_oci).
- Atbalsts izteikumu ENGINE vairs netiek nodrošināts kopā ar dažādām variācijām «DROP TABLESPACE» un «ALTER TABLESPACE».
- Izņemta privilēģija «SET_USER_ID», kuru vairs nevar norādīt GRANT izteikumos.
- Atgrieztas S API funkcijas: mysql_kill(), mysql_list_fields(), mysql_list_processes(), mysql_refresh(), mysql_reload(), mysql_shutdown() un mysql_ssl_set(), daļa no kurām tika pārstrādāta, izmantojot funkciju mysql_real_query(). Šīs funkcijas tika izņemtas MySQL 8.3 versijā, bet atjaunotas, lai nodrošinātu atbalstu MySQL 8.4 LTS versijā.
- Novērstas 26 ievainojamības, kas var tikt izmantotas attālināti. Visnopietnākā problēma ir ar bīstamības līmeni 6.5 un ir saistīta ar ievainojamību openSSL. Mazāk bīstamās ievainojamības skar optimizatoru, InnoDB, Thread Pooling, Group Replication Plugin, Audit Plugin, DML, mysqldump.
Avots: opennet.lv
