mysql8.0發佈新特性

2018年4月21日 14:36:42html

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html#mysqld-8-0-11-bugmysql

 

這個是這個已經發布的,注意本文時間正則表達式

字符集支持算法

在未來的MySQL版本中,utf8mb3字符集將被utf8mb4所取代。 utf8字符集目前是utf8mb3的別名,但在此時會成爲對utf8mb4的引用。 爲了不utf8含義的歧義,請考慮爲字符集引用而不是utf8顯式指定utf8mb4sql

 

編譯說明數據庫

MySQL源代碼已使用clang格式轉換爲Google樣式規則。 (錯誤#27414321)數組

Sun RPC正在從glibc中移除。若是glibc不包含Sun RPC,CMake如今檢測並使用libtirpc。 (您可能會發現須要安裝libtirpc和rpcgen才能利用此CMake功能。)(錯誤#27368272,錯誤#89168)緩存

服務器版本的Boost庫的最低版本如今是1.66.0。 (錯誤#27137349,錯誤#88540)安全

從源代碼構建時,提供的CMake腳本假定已經安裝了JUnit和Ant並在設置的路徑上可用。若是狀況並不是如此,那麼構建GCS Java包裝會致使構建錯誤。爲了解決這個問題,一個新的CMake選項WITH_ANT = path_name已被添加到構建腳本中,而且其工做方式與現有的WITH_BOOST CMake選項相似。將WITH_ANT設置爲保存Ant tarball或已打開的存檔的目錄的路徑。當WITH_ANT沒有設置,或者使用特殊值系統設置時,構建假定$ PATH中存在二進制ant。服務器

一樣,CMake選項ENABLE_DOWNLOADS已經存在,用於在構建期間下載所需的庫,例如Google Test分發版。如今,當設置了ENABLE_DOWNLOADS,而且未找到JUnit或Ant時,它們將做爲構建過程的一部分下載。 (Bug#26678793)

 

配置說明

新的CMake選項BUNDLE_RUNTIME_LIBRARIES容許將運行時庫與Windows的服務器MSI和Zip包捆綁在一塊兒。 (錯誤#27584796,錯誤#89771)

系統服務文件如今將LimitNOFILE增長到10000,以適應MySQL 8.0中更高的默認設置。 (Bug#27530282)

新的WITH_SYSTEM_LIBS CMake選項啓用後,將爲未顯式設置的如下任何選項選擇系統值:WITH_EDITLINE,WITH_ICU,WITH_LIBEVENT,WITH_LZ4,WITH_PROTOBUF,WITH_SSL,WITH_ZLIB。 (錯誤#27356668,錯誤#89136)

編譯後的zlib庫的版本如今在運行時可用做version_compile_zlib系統變量的值。 感謝Daniëlvan Eeden提供的補丁。 (錯誤#27235065,錯誤#88825)

 

棄用和刪除說明

不兼容的更改:這些不推薦的兼容性SQL模式已被刪除:DB2,MAXDB,MSSQL,MYSQL323,MYSQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。它們不能再分配給sql_mode系統變量,或者做爲mysqldump --compatible選項的容許值使用。

刪除MAXDB意味着CREATE TABLE或ALTER TABLE的TIMESTAMP數據類型再也不被視爲DATETIME。

對於使用MySQL 8.0中刪除的SQL模式的MySQL 5.7應用程序,從MySQL 5.7主站複製到MySQL 8.0從站時語句可能失敗,或者可能對主站和從站有不一樣的影響。爲了不這些問題,應該修改使用MySQL 8.0中刪除模式的應用程序以免它們。

如下與賬戶管理相關的功能已被刪除:

使用GRANT建立用戶。相反,使用CREATE USER。遵循這種作法,NO_AUTO_CREATE_USER SQL模式對於GRANT語句而言是不重要的,所以它也被刪除。

使用GRANT修改特權分配之外的賬戶屬性。這包括身份驗證,SSL和資源限制屬性。相反,在建立賬戶時使用CREATE USER建立這些屬性,或者使用ALTER USER修改它們。

由CREASS USER和GRANT的密碼'hash_string'語法標識。相反,對於CREATE USER和ALTER USER,使用IDENTIFIED WITH auth_plugin AS'hash_string',其中'hash_string'值的格式與指定插件兼容。

此外,因爲已將IDENTIFIED BY PASSWORD語法刪除,所以log_builtin_as_identified_by_password系統變量是多餘的,而且已被刪除。

PASSWORD()函數。此外,PASSWORD()刪除意味着SET PASSWORD ... = PASSWORD('auth_string')語法再也不可用。

old_passwords系統變量。

對於使用MySQL 8.0中刪除的功能的MySQL 5.7應用程序,當從MySQL 5.7主站複製到MySQL 8.0從站時,語句可能會失敗,或者可能對主站和從站有不一樣的影響。爲了不這些問題,應該修改使用MySQL 8.0中刪除的功能的應用程序,以免它們,並儘量使用替代方法。 (Bug#27455708)

 

 

INFORMATION_SCHEMA註釋

新的INFORMATION_SCHEMA.KEYWORDS表列出了MySQL考慮的關鍵詞,而且對於每一個表來講明它是否被保留。 此表爲應用程序提供了MySQL關鍵字信息的運行時間源。 請參閱INFORMATION_SCHEMA關鍵字表。

另外,若是你從源代碼構建MySQL,構建過程會生成一個包含關鍵字數組和關鍵字的保留狀態的keyword_list.h頭文件。 該文件能夠在build目錄下的sql目錄中找到。 此文件可能對須要關鍵字列表的靜態源的應用程序有用。

 

安裝說明

 RPM和Debian軟件包如今將當前的MySQL系列添加到共享目錄名稱(例如share / mysql-8.0)。 (錯誤#27638192,錯誤#26990531)

 

日誌記錄

 寫入錯誤日誌的消息如今指示事件發生的子系統。 可能的子系統值是InnoDB(InnoDB存儲引擎),Repl(複製子系統),Server(不然)。

 

打包說明

 

使用Debian軟件包進行安裝或升級如今會顯示一個對話框,其中包含一個用於將默認身份驗證插件設置爲mysql_native_password的選項。 這對於某些安裝站點的向後兼容性可能頗有用。 (Bug#27454287,錯誤#27667294)

compile_innodb腳本再也不使用,而且已從MySQL發行版中刪除。 感謝Alexey Kopytov的建議。 (錯誤#27448099,錯誤#89437)

 

性能架構註釋

 

新的性能架構表log_status提供的信息使聯機備份工具可以在複製過程當中複製所需的日誌文件,而不會鎖定這些資源。 當查詢log_status表時,服務器會阻塞日誌記錄和相關的管理更改,只需足夠長的時間填充表,而後釋放資源。 log_status表通知聯機備份應將其應複製到master的二進制日誌和gtid_executed記錄中的點以及每一個複製通道的中繼日誌。 它還爲各個存儲引擎提供相關信息,例如最後一個日誌序列號(LSN)和InnoDB存儲引擎上次檢查點的LSN。

須要BACKUP_ADMIN特權才能訪問log_status表。 (Bug#27599831)

性能模式對象如今具備默認字符集utf8mb4。 (Bug#27407745)

 

安全說明

 

yaSSL再也不包含在MySQL發行版中。 wolfSSL可能被用做具備GPLv2兼允許可證的功能等同替代品。另外,wolfSSL(如OpenSSL)支持TLSv1.2協議,而yaSSL不支持。

有關使用wolfSSL從源代碼構建MySQL的說明,請參閱MySQL源代碼分發中的extra / README-wolfssl.txt文件。 WITH_SSL CMake選項如今容許wolfssl做爲有效值,再也不將其做爲值綁定。要使用-DWITH_SSL = wolfssl,您必須按照README-wolfssl.txt中的說明進行操做。有關更多信息,請參閱OpenSSL與wolfSSL。 (Bug#26671671)

若是使用OpenSSL進行編譯,MySQL如今支持FIPS模式,而且運行時可使用OpenSSL庫和FIPS對象模塊。 FIPS模式對加密操做施加了條件,例如對可接受的加密算法的限制或對較長密鑰長度的要求。 ssl_fips_mode系統變量容許在服務器端控制FIPS模式。 --ssl-fips-mode客戶端選項能夠在客戶端控制這些程序的FIPS模式:mysql,mysqladmin,mysqlbinlog,mysqlcheck,mysqldump,mysqlimport,mysqlpump,mysqlshow,mysqlslap,mysqltest,mysqlxtest,mysql_secure_installation和mysql_upgrade。請參閱FIPS支持。

 

空間數據支持

 

不兼容的更改:這些幾何集合更改已經實現:

支持幾何集合數據類型的標準GeomCollection名稱做爲GeometryCollection數據類型名稱的同義詞。

做爲GeometryCollection()函數的同義詞支持GeomCollection()函數。

GeomCollection和GeomCollection()是首選的數據類型和函數名稱。

不兼容性:因爲首選數據類型名稱發生變化,某些INFORMATION_SCHEMA表,諸如SHOW CREATE TABLE之類的語句和顯示數據類型信息的ST_GeometryType()函數如今顯示GEOMCOLLECTION而不是GEOMETRYCOLLECTION。 應該調整尋找GEOMETRYCOLLECTION的應用程序來解釋這種變化。

有關更多信息,請參閱GeometryCollection類和建立幾何值的MySQL特定函數。

 

sys架構註釋

 sys模式對象如今具備默認字符集utf8mb4。 (Bug#27675959)

 

測試套件註釋

 經過減小浮點結果的GIS處理中的編譯器和平臺差別,能夠簡化再也不須要四捨五入以免虛假測試失敗的相關測試用例。 感謝Daniel Black提供的補丁。 (錯誤#26540102,錯誤#87223,錯誤#27462294)

 

X插件說明

 

將MySQL用做文檔存儲時,如今徹底支持使用X DevAPI在幾何值列上使用SPATIAL索引。之前,能夠建立空間索引,但空間參考系統標識符(SRID)未包含在索引列中,所以優化程序未使用該索引。 SRID屬性如今被添加到索引列中。 (Bug#27568243)

與X插件測試一塊兒使用的套接字文件如今僅限於22個字符的文件名。 (錯誤#27460677,錯誤#89464)

Bug#26328274的修復程序致使在調試版本中爲X插件鏈接使用空主機名時產生斷言。問題如今已修復。 (錯誤#27266584,錯誤#88925)

當使用PLAIN身份驗證方法使用未設置密碼的用戶賬戶時,X插件未填充密碼緩存。這致使之後的認證嘗試失敗。若是用戶賬戶的密碼爲空,則密碼緩存如今能夠正確填充條目。 (Bug#27257722)

X插件如今支持在MySQL 8.0.4中添加的RESTART SQL語句,以便在客戶端會話中從新啓動MySQL服務器實例。 (Bug#27245319)

從版本8.0.4開始,使用X協議的MySQL Shell鏈接可使用TCP或Unix套接字。此修補程序容許在UNIX套接字鏈接中使用加密協議,所以須要加密鏈接的用戶賬戶纔可以鏈接。 (Bug#27192091)

Bug#26647488修正了對DATETIME數據類型的處理,如今也正確地解碼了從舊版本插件接收的消息,該插件沒有可用於識別數據類型的新字段。 (Bug#27169735)

X當鏈接選項中指定的默認數據庫無效時,使用X協議的插件鏈接嘗試不會返回錯誤,而且鏈接容許使用空默認數據庫。使用經典MySQL協議的鏈接嘗試確實返回錯誤而且不容許鏈接。若是指定了無效的模式,X協議鏈接嘗試如今也禁止鏈接。 (Bug#26965020)

X插件如今默認加載,這意味着再也不須要安裝插件。

 

功能添加或更改

 

InnoDB:用於InnoDB表空間的ibd2sdi序列化字典信息(SDI)抽取實用程序如今支持一個--pretty選項,用於控制SDI數據的JSON漂亮打印格式。漂亮的打印格式是默認啓用的。禁用使用--skip-pretty的漂亮打印格式能夠減小提取的SDI數據的大小。 (Bug#27546514)

InnoDB:爲了提升具備大緩衝池的系統的啓動性能,緩衝池初始化如今是多線程的。 (錯誤#22963374,錯誤#80784)

InnoDB:實現瞭如下重作日誌記錄優化:

用戶線程如今能夠併發寫入日誌緩衝區而不一樣步寫入。

用戶線程如今能夠按照寬鬆的順序將髒頁面添加到flush列表中。

如今專用的日誌線程負責將日誌緩衝區寫入系統緩衝區,將系統緩衝區刷新到磁盤,將寫入和刷新的重作通知用戶線程,維持放寬的清空列表順序所需的延遲,並編寫檢查點。

添加了系統變量,用於配置等待刷新重作的用戶線程使用旋轉延遲:

innodb_log_wait_for_flush_spin_hwm:定義最大平均日誌刷新時間,超過該時間,用戶線程在等待刷新的重作時再也不旋轉。

innodb_log_spin_cpu_abs_lwm:定義最小CPU使用量,低於該值時,用戶線程在等待刷新重作時再也不旋轉。

innodb_log_spin_cpu_pct_hwm:定義最大CPU使用量,超過這個值,用戶線程在等待刷新的重作時再也不旋轉。

innodb_log_buffer_size配置選項如今是動態的,它容許在服務器運行時調整日誌緩衝區的大小。

有關更多信息,請參閱優化InnoDB重作日誌。

Solaris:在Solaris上,MySQL如今可使用Developer Studio 12.6構建。 (錯誤#27055190,錯誤#88316)

在數據目錄初始化期間進行記錄(例如,使用mysqld --initialize)已更改:

啓動消息代表服務器正在初始化模式下運行。

寫入消息指示初始化什麼時候完成。

有關CA證書自簽名的消息被抑制。

(錯誤#27557952,錯誤#89693)

若是啓用了日誌記錄,則-log後綴再也不附加到服務器版本字符串。這會影響版本系統變量的值。 (錯誤#27532097,錯誤#89626)

寫入錯誤日誌的服務器關閉行如今包含服務器版本。 (錯誤#27522788,錯誤#87910)

若是行格式是默認格式,則SHOW CREATE TABLE一般不會顯示ROW_FORMAT表格選項。在可移動表空間的表導入和導出操做期間,這可能會致使問題。 MySQL如今支持一個show_create_table_verbosity系統變量,該變量在啓用時會致使SHOW CREATE TABLE顯示ROW_FORMAT,而無論它是否爲默認格式。 (Bug#27516741)

性能架構內存儀器開銷減小了。 (Bug#27500610)

在數據目錄初始化期間,服務器使用sql_mode =''建立對象。如今服務器使用默認的sql_mode值(其中包括嚴格模式)。 (錯誤#27476029,錯誤#89495)

在mysql-test / std_data / Index.xml中定義的排序規則僅用於測試目的,不然不該使用。評論被添加到文件中,以使其清晰,由於有些用戶在非測試環境中使用它們。 (錯誤#27421838)

RESET PERSIST再也不執行隱式提交。 (Bug#27374791)

對於持久變量,Performance Schema variables_info表的SET_TIME列如今反映變量持續的時間,而不是服務器啓動時間。 (Bug#25677422)

之前,即便在表建立時明確指定了排序規則,但若是排序規則與表默認規則相同,SHOW CREATE TABLE也不會顯示列的排序規則。如今,若是明確指定了排序規則,則SHOW CREATE TABLE將始終顯示列排序規則,即便排序規則與表默認規則相同。 (錯誤#11754608,錯誤#46239)

 

錯誤修復

 

重要更改:啓用NO_ZERO_DATE SQL模式時,若是未爲該列指定DEFAULT,則ALTER TABLE會拒絕嘗試將已聲明爲NOT NULL的DATE或DATETIME列添加到非空表中。因爲生成的列沒有默認值,所以此限制還會阻止將生成的DATE NOT NULL或DATETIME NOT NULL列添加到非空表中。因爲可使用用於生成列的表達式來代替缺乏用於肯定列值的缺省值,所以如今能夠爲生成的列取消此限制。 (Bug#27252354)

重要更改:對於ANALYZE TABLE ... UPDATE HISTOGRAM語句,WITH N BUCKETS子句如今是可選的。若是未指定,則BUCKETS的默認值爲100.(錯誤#89909,錯誤#27637968)

InnoDB:在致命錯誤消息寫入錯誤日誌以前服務器已中止。 (Bug#27626478)

InnoDB:當肯定是否能夠授予等待鎖定時,忽略正在回滾的受害者事務持有的鎖定。 (Bug#27607235)

InnoDB:使用GCC 7.2.0編譯調試版本時,Sdi_Decompressor :: decompress()發生錯誤。 (Bug#27565889)

InnoDB:在並行建立多個緩衝池期間註冊緩衝池塊時引起了一個斷言。如今使用互斥鎖來保護緩衝池塊映射中緩衝池塊的註冊。 (Bug#27565865)

InnoDB:啓用標準監視器會致使錯誤。 (錯誤#27534041)

InnoDB:用於將列標記爲隱藏的內部字段已從布爾字段更改成枚舉字段,以支持更多級別的列可見性。 (錯誤#27499518,錯誤#89553)

InnoDB:無效的與zlib相關的Valgrind失敗報告了條件跳轉或移動取決於未初始化的值。 (錯誤#27482740,錯誤#89509)

InnoDB:使用TempTable存儲引擎和NO PAD歸類時,返回了不正確的GROUP BY結果。 (Bug#27454796)

InnoDB:頁面壓縮功能中的壓縮長度值不正確會致使在第一次壓縮頁面時打孔會被跳過。 (Bug#27399897)

InnoDB:使用錯誤的--log-bin選項值啓動服務器會產生一個斷言,而且隨後嘗試使用正確的--log-bin值或不使用--log-bin選項來啓動服務器時,會繼續產生斷言失敗。 (Bug#27393317)

InnoDB:在UPDATE操做期間插入LOB時,沒有更新大對象(LOB)引用。 (Bug#27368662)

InnoDB:從新啓動服務器後,因爲表標誌與存儲在內存中的遠程數據目錄信息不一致,所以TRUNCATE TABLE操做引起了斷言。 (Bug#27367639)

InnoDB:嘗試使用CREATE TEMPORARY TABLE ... TABLESPACE語法未能報告錯誤,在每一個文件表的表空間中建立一個臨時表。臨時表空間只容許在臨時表空間中使用。 (Bug#27361662)

InnoDB:在另外一個線程試圖分配頁面以前,大對象(LOB)第一頁上的閂鎖未被釋放,致使死鎖。 (錯誤#27360492)

InnoDB:經過引入追蹤最小活動事務標識的成員變量來優化將隱式鎖轉換爲顯式鎖。

感謝翟維祥的補丁。 (錯誤#27353468,錯誤#89127)

InnoDB:InnoDB存儲引擎在內部使用的mysql.innodb_ddl_log和mysql.innodb_dynamic_metadata表如今受到保護。這些表上的DDL和DML操做再也不容許,而且這些表再也不出如今INFORMATION_SCHEMA查詢結果中。 (錯誤#27353455,錯誤#89129)

InnoDB:使用innodb_page_size設置爲4K升級MySQL 5.7實例會致使mysql_upgrade失敗,並顯示「指定密鑰太長;最大密鑰長度爲768字節「建立或修改系統表時出錯。該錯誤被禁止,以容許mysql_upgrade客戶端在innodb_page_size設置爲4K的實例上運行。 (Bug#27338431)

InnoDB:恢復過程沒法正確肯定space_id值,致使服務器退出。 (Bug#27331936)

InnoDB:修改索引列的可空性的ALTER TABLE操做引起了斷言。 InnoDB錯誤地認爲必須添加新的主鍵,而不是從現有的惟一鍵建立。 (錯誤#27330454,錯誤#89087)

參考文獻:這個問題是一個迴歸:Bug#24397406。

InnoDB:在ALTER TABLE ... IMPORT TABLESPACE操做以後,沒法從INFORMATION_SCHEMA.INNODB_COLUMNS表中正確檢索元數據。 (Bug#27322099)

InnoDB:涉及大對象(LOB)值的INSERT操做引起了斷言。拆分LOB片斷後,目錄條目沒有足夠的空間。 (錯誤#27320977)

InnoDB:在使用utf8mb4字符集的服務器上,ALTER TABLE操做期間的INSERT或UPDATE更改了包含虛擬列的表格的行格式,致使索引損壞。 (Bug#27319084)

InnoDB:從INFORMATION_SCHEMA.INNODB_COLUMNS檢索的數據對於包含虛擬列的表不正確。 (Bug#27316037)

InnoDB:因爲密鑰環文件無效,服務器恢復後沒法啓動。從備份建立的密鑰環文件爲空。 (Bug#27307740)

InnoDB:後臺線程之間發生死鎖,一個嘗試從緩存中逐出全文搜索表,另外一個嘗試同步表,致使InnoDB集羣節點失敗。 (Bug#27304661)

InnoDB:在InnoDB恢復消息中糾正了錯字。感謝Daniëlvan Eeden提供的補丁。 (Bug#27287979,Bug#27010613,Bug#88185)

InnoDB:在InnoDB恢復期間報告了一條消息,指出缺乏加密算法支持。 (Bug#27286020)

InnoDB:缺乏或不匹配的密鑰環文件在啓動時致使斷言失敗。 (Bug#27278324)

InnoDB:檢查加密表空間文件的空間ID時,返回錯誤,指出缺乏加密支持。 (錯誤#27278100)

InnoDB:打印「太多打開文件」警告的調試消息如今僅在打開文件的數量達到300的限制時纔會打印。(錯誤#27277844)

InnoDB:在釋放間隙時未能跳過謂詞鎖定會引起調試斷言,正如在釋放前綴上的間隙鎖定以前未能刪除上游記錄位同樣。 (Bug#27272806,Bug#27294066)

InnoDB:在克隆的數據目錄上啓動服務器時發生表空間ID發現失敗。 (Bug#27265874)

InnoDB:一個不受保護的全局變量(fil_n_file_opened)在關閉服務器時致使斷言。 (Bug#27265473)

InnoDB:在檢查正在使用的文件上的未決I / O時引起了再也不有效的斷言。 (Bug#27263206)

InnoDB:升級到MySQL 8.0時,空的通用表空間致使失敗。預計空的數據文件具備特定數量的頁面。 (Bug#27261822)

InnoDB:因爲--innodb-directories選項指定的目錄包含密鑰環數據文件,所以發生啓動失敗。 --innodb-directories選項只能識別InnoDB表空間文件。 (Bug#27253116)

InnoDB:計算最小邊界矩形(MBR)大小增長的函數錯誤地返回0,致使R樹損壞。 (Bug#27237472)

InnoDB:臨時表上的REPLACE操做引起了一個斷言。 (Bug#27225649)

InnoDB:在同一個表上伴隨着併發DML的表上的聯機ALTER TABLE操做引起了斷言。在訪問DML日誌以肯定虛擬列的長度以前,不會執行日誌結束檢查。 (Bug#27158030)

InnoDB:當添加虛擬索引失敗時,已經釋放的虛擬索引不會從虛擬列索引列表中刪除。 (Bug#27141613)

InnoDB:在同一個語句中添加虛擬列和索引會致使錯誤。 (Bug#27122803)

InnoDB:撤消表空間截斷操做引起了一個斷言。肯定撤消表空間段是否處於非活動狀態的檢查無效。 (Bug#27114068)

InnoDB:當TempTable存儲引擎沒法使用臨時文件和mmap分配內存時,會報告一個無效錯誤,指示將使用定義的磁盤存儲引擎。 (錯誤#26990375)

InnoDB:默認行格式爲REDUNDANT的服務器上的表空間導入操做引起了斷言失敗。 (錯誤#26960215)

InnoDB:基於生成列的存儲字段容許基列具備NULL值。 (錯誤#26958695)

InnoDB:評估解析函數中的子查詢提出了一個斷言。 (錯誤#26909960)

InnoDB:與數據字典操做相關的鎖致使CREATE TABLE性能降低。 (錯誤#26848711,錯誤#87827)

InnoDB:用於備份操做的LOCK INSTANCE可以在不等待併發DDL操做完成的狀況下獲取備份鎖。 (錯誤#26831155,錯誤#87812)

InnoDB:未正確指定的innodb_data_file_path或innodb_temp_data_file_path值返回語法錯誤,未指定致使初始化失敗的系統變量的名稱。 (Bug#26805833)

InnoDB:爲TRUNCATE TABLE操做打開的處理程序致使操做斷言。在刪除表以前,服務器如今關閉打開的處理程序。

此錯誤的修補程序還改進了與外鍵約束相關的TRUNCATE TABLE錯誤消息,並使截斷損壞的表成爲可能。 (Bug#26710839)

InnoDB:從新建立表的在線DDL操做在應用的最後一個插入日誌記錄跨兩頁分割時產生斷言。 (錯誤#26696448,錯誤#87532)

InnoDB:嘗試根據還沒有存儲的離頁大對象值生成虛擬列值時引起斷言。 (Bug#26625652)

InnoDB:R樹搜索計算刪除標記的記錄,使其找到比彙集索引中更多的記錄。結果,有效的R樹索引被標記爲損壞。 (錯誤#26381207)

InnoDB:重命名模式的RENAME TABLE操做沒法重命名在全文搜索索引先前被刪除時留下的全文搜索公共輔助表,致使嘗試刪除舊模式時斷言失敗。 (Bug#26334149)

InnoDB:當一個線程試圖讀取一個包含BLOB數據的記錄,而另外一個線程正在向外部頁面寫入相同的數據時引起了一個斷言。 (Bug#26300119)

參考文獻:這個問題是一個迴歸:Bug#23481444。

InnoDB:外部存儲列的列前綴超過了在線日誌中的可用內存量。 (Bug#25928471)

InnoDB:引入了一個有問題的鎖,用於在檢查點期間保護將動態元數據更改寫入重作日誌的操做被刪除。如今使用互斥鎖來代替。檢查點LSN也進行了調整,以保護動態元數據更改。 (Bug#25834374)

InnoDB:InnoDB在使用列偏移量搜索自動增量列的索引時未能解釋虛擬列。 (錯誤#25076416)

InnoDB:無效的調試條件致使緩衝池組塊分配失敗,致使在清除線程嘗試訪問未分配的塊時致使斷言失敗。 (錯誤#23593654)

參考文獻:這個問題是一個迴歸:Bug#21348684。

InnoDB:因爲票據獲取死鎖,線程被阻止進入InnoDB存儲引擎。 (錯誤#23476050)

分區:執行ALTER TABLE EXCHANGE PARTITION時,存儲引擎返回的錯誤未由服務器正確處理。 (Bug#27320682)

複製:當MySQL使用--plugin-load ='group_replication.so'啓動但組複製未啓動時,啓動異步從通道會致使服務器無響應。 (錯誤#27584141)

複製:已回滾的空XA事務不該記錄在二進制日誌中或添加到gtid_executed系統變量中的一組事務中。可是,若是在以XA COMMIT ... ONE PHASE語句結尾的空XA事務以後執行回滾空XA事務,則它們會做爲XA ROLLBACK語句錯誤地添加到二進制日誌中,而且也會被錯誤地添加到gtid_executed系統變量。問題如今已修復。 (錯誤#27435974)

複製:組複製文件已從快速目錄移動到插件目錄。 (Bug#27413789)

複製:當系統變量gtid_next設置爲AUTOMATIC時,回滾而且未記錄在二進制日誌中的空XA事務被錯誤地添加到gtid_executed系統變量中的一組事務中,致使不一致。回滾的空XA事務再也不記錄在gtid_executed中。 (Bug#27407670)

複製:組複製衝突檢測使用模式和表名稱做爲主鍵等效(PKE)的一部分,以檢測和禁止衝突事務。 lower_case_table_names系統變量的值更改了模式和表名稱的存儲和外部化方式,這取決於配置的值能夠將名爲T1的表保存爲t1。組中的這種差別可能會致使不一致。如今,成員必須都具備與lower_case_table_names相同的值。 (Bug#27401817)

複製:在macOS上的任何組複製相關配置中使用IP地址或主機名都失敗。 (Bug#27376511)

複製:在聯機輔助成員上更改組複製所需的設置可能會致使意外中止。 (Bug#27317478,Bug#27157202)

複製:replication_group_member_stats性能模式表中的LAST_CONFLICT_FREE_TRANSACTION值在組成員之間未正確同步。 (錯誤#27317431)

複製:在發出START GROUP_REPLICATION後,gtid_mode系統變量將被鎖定,以防止對其值進行任何修改,直到該組處於聯機狀態。在此期間修改gtid_mode的任未嘗試都會被阻止。做爲啓動組複製過程的一部分,服務器須要設置super_read_only = off,它依賴於SET GTID_MODE獲取的鎖。這可能致使組複製掛起,而且不可能鏈接到服務器來解決這種狀況。爲防止出現這種狀況,當沒法獲取SET GTID_MODE所需的鎖時,操做將停止。 (錯誤#27312241)

複製:當一個成員加入一個組時,有可能請求加入被拒絕。若是拒絕致使重試,例如由於正在接觸的種子成員不在組中,那麼重試周期有可能無限持續。 (Bug#27294009)

複製:若是組未能啓動,例如因爲未聯繫任何種子成員,所以組中有一分鐘的時間內組重試啓動進程。嘗試在此期間修改組複製插件選項可能會致使意外中止。如今,嘗試在插件啓動或中止期間修改組複製插件選項會致使錯誤。 (錯誤#27275312)

複製:如今將默認的30天二進制日誌過時期限設置爲binlog_expire_logs_seconds系統變量的默認值,而不是已棄用的expire_logs_days系統變量。如今,binlog_expire_logs_seconds默認值爲2592000(30 * 24 * 60 * 60秒),而expire_logs_days如今默認爲零。

在MySQL 8.0.3和8.0.4中,binlog_expire_logs_seconds和expire_logs_days的影響是累積的。從MySQL 8.0.11開始,這再也不是這種狀況,新的行爲以下所示:

若是爲兩個變量指定非零值,則僅使用binlog_expire_logs_seconds的值來肯定二進制日誌到期時間段,而且將忽略expire_logs_days的值。

若是您只爲一個變量指定非零值,則該值用於肯定二進制日誌到期期限,而其餘值的默認值不適用。

若是您爲這兩個變量都指定了一個值,則將使用binlog_expire_logs_seconds中的30天的缺省值做爲二進制日誌到期期限。

若是您嘗試在另外一個變量已設置時動態設置其中一個變量,則會發出錯誤消息,若是您在啓動時爲這兩個變量指定了非零值,則會發出警告消息。若是您爲expire_logs_days設置了值,也會發出棄用警告。

要禁用二進制日誌的自動清除,請爲binlog_expire_logs_seconds顯式指定值0,而且不要爲expire_logs_days指定值。爲了與早期版本兼容,若是您爲expire_logs_days明確指定值0,而且不爲binlog_expire_logs_seconds指定值,則也會禁用自動清除。在這種狀況下,binlog_expire_logs_seconds的默認值不適用。您再也不須要將這兩個變量設置爲零以禁用自動清除。 (Bug#27252658)

複製:試圖在配置爲在引導時自動啓動插件的服務器上卸載組複製插件可能會致使死鎖。如今,卸載過程將檢查以確保插件未處於啓動過程當中,而且若是存在則優雅地失敗。 (Bug#27179336)

複製:再也不容許DDL語句CREATE DATABASE,ALTER DATABASE和DROP DATABASE與多線程從機上的其餘語句並行執行。這些語句須要對模式進行獨佔元數據鎖定,從而在複製從服務器上設置slave_preserve_commit_order = 1時致使死鎖的理論可能性。 (錯誤#27165446)

複製:在禁用二進制日誌記錄的複製從站上,空的DDL語句(例如,因爲複製過濾器)引起了斷言。啓用二進制日誌記錄後,BEGIN和COMMIT語句將寫入二進制日誌以生成事務,但這些語句在禁用二進制日誌記錄時不可用,致使斷言。 MySQL服務器如今檢查DDL事務是否爲空而且未標記爲已啓動的狀況,並在不提升斷言的狀況下處理它。 (Bug#27164661)

複製:新的系統變量rpl_read_size可用於設置從二進制日誌文件和中繼日誌文件中讀取的最小數據量(以字節爲單位)。默認的讀取大小是8KB。若是這些文件的繁重磁盤I / O活動阻礙了數據庫的性能,那麼若是文件沒有被操做系統緩存,增長讀取大小可能會減小文件讀取和I / O延遲。

請注意,爲每一個從二進制日誌和中繼日誌文件讀取的線程(包括主服務器上的轉儲線程和從服務器上的協調器線程)分配了此值的大小的緩衝區。所以設置較大的值可能會影響服務器的內存消耗。

感謝Facebook團隊的補丁。 (Bug#27147095)

 

複製:在啓用GTID的服務器上,若是在刷新事務但還沒有提交時使用RESET MASTER,則服務器GTID將保持不正確的狀態。此時,交易的GTID已被添加到擁有的GTID集合中,但還沒有添加到已執行的GTID集合中。當未提交事務的內容被RESET MASTER語句清除時,GTID已從二進制日誌中刪除,但GTID因爲已被擁有而沒法重用,因此GTID的順序存在差距。

經過此修復,RESET MASTER獲取全局讀鎖定,以確保在操做期間沒有事務處於落實階段,而且在操做期間沒有新事務進入落實階段。若是有任何正在進行的提交,RESET MASTER會一直等到它們完成。全局讀鎖定在復位完成時釋放,而後通知存儲引擎成功復位。若是線程的FLUSH TABLES WITH READ LOCK已被執行,RESET MASTER不會重試該鎖。 (Bug#27041759)

複製:嘗試使用SET @@ SESSION.GTID_NEXT語句爲不安全或空的XA事務設置GTID的操做不正確。在gtid_mode設置爲OFF或OFF_PERMISSIVE且enforce_gtid_consistency設置爲OFF的服務器上,爲不安全的XA事務(建立或刪除臨時表)設置GTID會致使服務器的GTID違例計數器出現不一致,並引起斷言。測試還顯示,爲空的XA事務設置GTID會致使將不正確的事件序列寫入二進制日誌。這兩種狀況如今均可以正確處理。 (錯誤#27041402,錯誤#88272)

複製:旋轉二進制日誌時爲服務器中止發出的錯誤消息未說明問題的正確緣由。錯誤消息已獲得加強,以包含致使服務器中止的實際錯誤做爲消息的一部分。在將最後一個二進制日誌中的GTID集保存到mysql.gtid_executed表時出現內存不足錯誤的狀況下,還添加了新的錯誤ER_OOM_SAVE_GTIDS。 (錯誤#27040070,錯誤#88262)

複製:組複製使用事務寫入集提取對組成員進行衝突檢測。在詳細的性能分析過程當中發現了性能迴歸,該性能分析由此錯誤修復處理。內存分配已針對寫入集提取進行了優化,內存複製操做已減小。此外,外鍵寫入集如今僅在當前表具備外鍵時收集。 (錯誤#27016053)

複製:當使用group_replication_ip_whitelist時,能夠配置一個組,使其能夠運行,即便全部成員都沒法創建彼此的內部組通訊鏈接,致使行爲不一致。如今,若是IP位於白名單中,或者IP屬於XCom配置的當前成員,則接受傳入鏈接。這可確保成員始終可以建立組通訊所需的內部網絡。 (Bug#26846549,Bug#27406775)

複製:即便查詢致使錯誤,語句CREATE USER IF EXISTS(或IF NOT EXISTS)和ALTER USER IF EXISTS(或IF NOT EXISTS)也被寫入二進制日誌。 MySQL服務器如今檢查致使這些查詢失敗的錯誤(例如,指定了無效的插件),而且不會在該狀況下記錄該語句。請注意,若是這些語句成功但對主服務器沒有影響,由於條件不知足,則會將語句寫入二進制日誌,由於複製從服務器可能會遇到該狀況(請參閱錯誤#25813089,錯誤號85733)。 (Bug#26680035)

參考文獻:另見:錯誤#25813089,錯誤#85733。

複製:在多主羣組中,當成員也配置了異步複製通道時,異步通道可能在組複製啓動以前啓動。這可能致使在成員成爲該組的在線成員以前發生異步通道處理事務,從而在成員嘗試加入該組時致使問題。此修復確保組成員的異步通道在成員上線以前不會啓動。 (Bug#26648393)

複製:在MySQL 8.0中引入了對原子DDL的支持後,支持原子DDL的複製從服務器能夠與不支持原子DDL的早期MySQL版本的複製主服務器分離。若是隻能部分應用DDL語句,則使用MySQL 8.0的從站會回滾整個DDL語句,但使用較早版本的主站可能會提交DDL語句的有效部分。如今,若是主站和從站上的原子DDL語句不成功提交,而且在繼續以前應檢查主站和從站的狀態沒有發生分歧,則會記錄一條錯誤消息。 (Bug#26133488

複製:對於包含BLOB數據類型的虛擬生成列的更新,某些存儲引擎須要舊的和新的BLOB值進行復制。此修復將相同的行爲擴展爲JSON和GEOMETRY數據類型,這些數據類型基於BLOB數據類型,所以在未存儲舊值時會產生相同的問題。 (Bug#25873029)

複製:MySQL 8.0.0中的行爲更改將生成列的標識從以前移至計算二進制日誌記錄的寫入集以後。這致使了NDB羣集複製的問題,由於若是存儲引擎不須要,該存儲引擎會從日誌事件中省略生成的列,從而致使由複製從屬服務器上的應用程序線程爲它們設置NULL值。生成的列的標識如今已經回到寫集合計算以前,所以不會發生問題。 (錯誤#25827408)

複製:在多線程複製從屬設備上(slave_parallel_workers大於0),對於SHOW SLAVE STATUS,從屬設備滯後於主設備的狀況未被Seconds_Behind_Master字段報告。該值如今正確報告。感謝Robert Golebiowski的補丁。 (錯誤#25407335,錯誤#84415)

複製:在語句SET @@ GLOBAL.GTID_PURGED中,加號(+)可與GTID集一塊兒使用,以指示指定的GTID集與gtid_executed不相交。對於爲函數GTID_SUBSET()和GTID_SUBTRACT()指定的GTID集合,也容許使用加號,由於它們沒有意義。這些功能不能再指定加號。此外,與SET @@ GLOBAL.GTID_PURGED操做有關的錯誤消息已獲得改進。 (Bug#24675979)

複製:使用選項--read-from-remote-server和--hexdump調用時,mysqlbinlog沒法生成二進制日誌內容的十六進制轉儲,後者是生成自動增量值的SQL語句以後引用的用戶定義變量或調用RAND()。這些事件的事件類型以後是信息行查詢日誌事件,而且在接收到後續行查詢日誌事件時,mysqlbinlog緩存原始事件以進行打印。當接收到後續事件時,指向包含原始事件的內存的指針失效,所以沒法訪問原始數據以產生十六進制轉儲。這個問題如今已經解決了。 (Bug#24674276)

複製:對二進制日誌解碼過程進行了許多更改,以改進處理無效或損壞的二進制日誌條目。 (錯誤#24365972)

複製:在XA事務WL#6860引入二進制日誌記錄以後,若是在從屬設備上設置MASTER_AUTO_POSITION = 1,則在從具備該功能的主設備複製到沒有該功能的從設備的複製期間,可能會在調試版本中產生斷言。該斷言已被刪除,以便調試版本如今具備與非調試版本相同的行爲,而且能夠嘗試複製不受支持的事件類型,而無論是否設置了MASTER_AUTO_POSITION = 1。 (Bug#20677683)

Linux:如今創建在Alpine Linux上,能夠充分利用AIO支持。 (Bug#27327874)

macOS:在macOS上,mysql_config --libs沒有列出任何SSL庫。 (Bug#27232576)

Microsoft Windows:在Windows上,RESTART語句經過使用mysqld fork來實現,其中一個進程做爲另外一個進程充當服務器的監視器。這使得肯定要附加的服務器進程以進行調試更加困難。爲了減輕這一點,如今使用--gdb啓動服務器能夠抑制分叉。反作用是,對於以此選項啓動的服務器,RESTART僅退出而且不會從新啓動。 (Bug#27273229)

JSON:在某些狀況下,JSON_QUOTE()函數可能會將帶引號的字符串寫入保存輸入字符串的同一緩衝區,這可能會致使錯誤的結果。如今進行檢查以確保它不會嘗試寫入正在讀取的同一個緩衝區。 (錯誤#27312444)

JSON:JSON_SEARCH()再也不對緩存的Json_path對象進行任何修改,而是對錶示路徑的String對象進行任何須要的更新。這節省了路徑的Json_path和String表示之間所需的往返次數,從而加快了執行速度。另外,JSON_SEARCH()的one_or_all和escape_char參數被沒必要要地緩存;這些參數再也不被緩存,這也應該改善這個函數的執行時間。 (錯誤#87383,錯誤#26614455)

參考文獻:另見:錯誤#21450084,錯誤#77785,錯誤#21472872。

檢查是基於數據字典版本信息實施的,以防止啓動MySQL 8.0服務器時使用由之後的MySQL版本建立的數據目錄。該檢查對於防止當前不支持的就地降級是必需的。 (Bug#27708249)

受保護的數據字典表再也不能夠經過放置在服務器初始化文件中的語句訪問。 (錯誤#27674311,錯誤#90010)

數據字典和INFORMATION_SCHEMA版本號與新的MySQL服務器版本號同步。 (Bug#27674285)

服務器沒有使用帶前綴索引的BLOB列正確處理某些LIKE查詢。 (錯誤#27660560)

對於使用-DWITH_PROTOBUF = SYSTEM配置的構建,在安裝了ProtoBuf 3.5的系統上構建失敗。 (錯誤#27638713,錯誤#89915)

在mysqld-auto.cnf中存儲的持續變量的時間戳的微秒部分始終爲000000。(錯誤#27629719)

Debian軟件包如今能夠處理MeCab插件字典文件的依賴關係。如今Fedora軟件包處理兩個MeCab軟件包的依賴關係,而不只僅是utf-8軟件包。 (Bug#27612730,錯誤#27613539)

對於使用systemd做爲正常進程(Type = notify)運行mysqld並使用套接字文件進行通訊的平臺,MySQL 8.0.11中的更改​​在SLES 12.2以前的SLES上不起做用。 (錯誤#27604999)

INFORMATION_SCHEMA.STATISTICS表中的NON_UNIQUE列在MySQL 8.0以前的類型爲BIGINT,但隨着數據字典的引入,它成爲了MySQL 8.0中的VARCHAR。 NON_UNIQUE列如今再次具備整數類型(INT,由於該列沒必要像BIGINT那樣大)。 (錯誤#27593348,錯誤#89793)

有了一些輸入,ST_Crosses()可能會致使服務器退出。 (Bug#27576700)

有些錯誤消息正在寫入錯誤日誌,錯誤ID爲0,而不是合法的錯誤ID。 (Bug#27575608)

mysql_upgrade沒有正確設置MYSQL_SERVER_PUBLIC_KEY,致使沒法讀取密鑰文件。 (Bug#27568278)

若是自動提交被禁用,mysql_upgrade在從MySQL 5.7升級到8.0時產生錯誤。 (Bug#27549249)

對於調試版本,從性能模式線程表的PROCESSLIST_STATE列中顯示很是長的階段名稱可能會引起一個斷言。 (Bug#27545688)

若是某些必需的變量已設置爲保留變量,或者未按照適當的時間戳順序設置保留變量,則組複製沒法啓動。 (Bug#27545544,Bug#27522405)

gtid_purged處理有內存泄漏。 (錯誤#27537968,錯誤#89645)

服務器從新啓動後,使用SET PERSIST來保持optimizer_trace_offset致使不正確的變量值。 (Bug#27536421)

validate_password組件可能會泄漏內存。 (錯誤#27521770,錯誤#89597)

sql / handler.h中的拼寫錯誤已更正。感謝Su Tristan的補丁。 (Bug#27516280,Bug#89594)

Performance Schema variables_info表爲在!include或!includedir指令指定的選項文件內設置的變量顯示不正確的VARIABLE_SOURCE和VARIABLE_PATH值。 (Bug#27514223)

參考文獻:這個問題是一個迴歸:Bug#25563891。

從MySQL 5.7升級到MySQL 8.0以後,第一次嘗試在具備--default-time-zone設置爲特定時間值(如「+00:00」)的MySQL 5.7數據目錄中啓動服務器致使服務器退出。 (Bug#27512609,Bug#89584)

字符集內部數字的查找不是線程安全的,可能致使內存泄漏。 (錯誤#27507950)

一塊兒使用-DWITH_LIBEVENT = system和-DWITH_ICU = system CMake選項會致使配置失敗。 (錯誤#27505535,錯誤#89398)

有些消息正在使用客戶端錯誤ID寫入服務器錯誤日誌。 (錯誤#27503787,錯誤#89562)

在密鑰遷移模式下運行時,服務器可能會報告成功操做的錯誤。 (Bug#27493997)

從MariaDB升級到MySQL Community Edition在Fedora 27上失敗。(錯誤#27484835)

ALTER TABLE可能會掛起在等待表空間元數據鎖定狀態。 (錯誤#27472087,錯誤#89487)

從性能模式status_by_thread或variables_by_thread表中選擇不是線程安全的,可能會產生不正確的結果。 (錯誤#27471510)

INSERT ... ON DUPLICATE KEY UPDATE可能會被錯誤地處理,若是源表不產生任何行。 (錯誤#27460607)

SET PERSIST_ONLY忽略--skip-grant-tables,並繼續檢查設置系統變量所需的動態權限。 (Bug#27455943)

對於RPM軟件包和Docker RPM軟件包,包含的my.cnf文件如今包含指示如何恢復到之前的默認身份驗證插件(將caching_sha2_password更改成mysql_native_plugin)的信息,以便與舊客戶端兼容。 (Bug#27454015,錯誤#27675380)

在使用>的字符串比較中,只有一個操做數被處理爲utf32。 (Bug#27452148)

 

InnoDB初始化期間的服務器出口致使AddressSanitizer(ASan)報告內存泄漏。若是表中包含沒法分析的數據,該修補程序還會實現數據字典屬性表的正確處理。 (錯誤#27447981,錯誤#89433)

使用-DWITH_SSL = system,若是CMake沒法找到系統OpenSSL庫和頭文件,則會產生使人困惑的消息。如今它當即退出並出現錯誤。 (Bug#27447874)

使用-DWITH_INNODB_EXTRA_DEBUG = ON進行配置會致使連接器錯誤。 (錯誤#27444255,錯誤#89412)

使用-DWITH_ZLIB =系統進行配置會致使連接器錯誤。 (錯誤#27435371,錯誤#89373)

UNION ALL查詢的結果集中的元數據能夠表示爲NEWDATE而不是DATE。 (錯誤#27422376)

在啓用未定義行爲清除程序的狀況下,否認-922337203685477580可能致使服務器退出。 (錯誤#27419181)

啓用協議壓縮功能後,可能會引起虛假斷言。 (錯誤#27418207,錯誤#89324)

參考文獻:這個問題是迴歸:Bug#17922198。

與從數據字典中提取表空間對象以填充數據字典高速緩存相關的性能獲得了改進。 (Bug#27402243)

若是服務器使用--skip-grant-tables啓動,則使用caching_sha2_password插件進行身份驗證的客戶端沒法鏈接。 (錯誤#27400095,錯誤#89267)

Linux RPM和Debian軟件包如今包含運行MySQL測試套件所需的Perl JSON模塊的依賴信息。 Linux RPM軟件包如今包含運行MySQL測試套件所需的Perl Digest模塊的依賴信息。 (錯誤#27392800,錯誤#89250,錯誤#27392808,錯誤#89244)

新的系統變量default_collat​​ion_for_utf8mb4能夠設置utf8mb4字符集的默認排序規則。該變量主要用於支持從MySQL 5.7或更早版本的主服務器複製到MySQL 8.0從服務器,或者使用MySQL 5.7主節點和一個或多個MySQL 8.0輔助節點進行組複製。將該變量的值複製到從站,以便從站能夠正確處理源自主站的數據,並使用utf8mb4的不一樣默認歸類。這可能會有所幫助,由於MySQL 5.7中utf8mb4的默認排序規則是utf8mb4_general_ci,但MySQL8.0中的utf8mb4_0900_ai_ci排序規則是utf8mb4_general_ci。

變量值肯定下列語句的默認utf8mb4歸類:

SHOW COLLATION和SHOW CHARACTER SET。

CREATE TABLE和ALTER TABLE具備CHARACTER SET utf8mb4子句,但不包含COLLATION子句,用於表字符集或列字符集。

CREATE DATABASE和ALTER DATABASE具備CHARACTER SET utf8mb4子句而沒有COLLATION子句。

任何包含形式爲_utf8mb4'some text'的字符串字面值的語句,不包含COLLATE子句。

(Bug#27389878,錯誤#27081073)

用列名選項DESCRIBE忽略列名稱。 (錯誤#27387773,錯誤#89224)

在密鑰遷移模式下運行時,服務器忽略無效選項。 (錯誤#27387331)

對於很長的路徑名稱,路徑名稱規範化可能會失敗。 (Bug#27368298)

在配置期間,CMake認爲rpcgen可用而不是檢查它。 (Bug#27368078)

客戶端身份驗證過程在釋放後可使用內存。 (Bug#27366143)

-DWITH_ZLIB =系統可能致使其餘CMake功能測試失敗。 (錯誤#27356658,錯誤#89135)

在某些系統上,使用mysqld --initialize初始化數據目錄很是慢。 (錯誤#27349579,錯誤#89122)

必須下載Boost才能使用RPM源代碼包構建如今使用安全鏈接。 (錯誤#27343289,錯誤#89104)

轉換ULONGLONG時間值的內部check_datetime_range函數可在Windows上引起斷言。 (錯誤#27340709)

caching_sha2_password身份驗證插件的鎖定過多(每一個鏈接一個鎖定/解鎖)。這如今改進爲每一個插件安裝/卸載一次鎖定/解鎖。 (錯誤#27335346)

將'innodb_system'隱式指定爲表分區的表空間名稱的CREATE TABLE ... LIKE操做引起了一個斷言。 (Bug#27331588)

SET PERSIST_ONLY可能會錯誤地存儲大值變量。 (Bug#27322254)

即便禁用二進制日誌記錄,audit_log插件也能夠將語句寫入二進制日誌。 (錯誤#27315321)

某些使用GREATEST()或LEAST()的查詢產生堆使用後釋放錯誤。 (Bug#27312703)

一個external_language列被添加到mysql.routines數據字典表中以支持不一樣語言的存儲例程。存儲在此列中的數據可經過INFORMATION_SCHEMA.ROUTINES表的EXTERNAL_LANGUAGES列訪問。 (錯誤#27309116,錯誤#89038)

如今禁止使用與初始化服務器時使用的設置不一樣的lower_case_table_names設置來啓動服務器。限制是必要的,由於數據字典表字段使用的排序規則基於服務器初始化時定義的設置,而且使用不一樣的設置從新啓動服務器會致使與訂購和比較標識符的方式不一致。 (錯誤#27309094,錯誤#89035)

對於使用auth_sock認證插件進行身份驗證的賬戶,服務器沒法接受來自較舊版本MySQL的客戶端的鏈接。 (Bug#27306178)

audit_log插件內存泄漏已更正。 (錯誤#27302151)

INFORMATION_SCHEMA.FILES表如今從存儲引擎獲取如下列所需的信息:LOGFILE_GROUP_NAME,LOGFILE_GROUP_NUMBER,ROW_FORMAT,VERSION。 (錯誤#27292586)

刪除用戶定義的函數並不老是從性能模式user_defined_functions表中刪除它的條目。 (Bug#27270498)

爲了減少其尺寸和存儲佔用空間,序列化字典信息(SDI)如今以緊湊的JSON格式生成。 (錯誤#27265584)

從多個會話併發執行RESET PERSIST和SET PERSIST可能致使服務器退出。 (Bug#27264789)

即便統計信息收集過程遇到錯誤,也能夠緩存表空間統計信息。 (Bug#27259963)

SET PERSIST可能沒法找到寫入mysqld-auto.cnf文件的正確目錄。 (Bug#27253828)

若是表中包含數據,ALTER TABLE沒法建立生成的NOT NULL幾何列。 (Bug#27252609)

Performance Schema variables_info表爲在my.cnf中設置的變量顯示了不正確的VARIABLE_SOURCE值,而且該變量也保留到mysqld-auto.cnf。 (Bug#27252077)

不正確地處理插件的加載和卸載可能致使服務器退出。 (Bug#27247280,Bug#27297704)

RESTART語句不適用於Ubuntu軟件包。 (錯誤#27245918)

LDAP認證插件不是在FreeBSD上構建的。 (Bug#27238252)

當緩存值由窗口函數計算爲NULL時,或者當其參數是帶有可評估爲NULL的ROLLUP操做的GROUP BY的一部分時,服務器不能正確處理查詢。 (Bug#27233287)

在全部狀況下,LAST_VALUE()等窗口函數都不能正確處理包含NOT NULL列的表。 (Bug#27230463)

角色緩存失效可能會執行不正確。 (Bug#27225806)

服務器啓動時對持久變量的錯誤處理可能致使服務器退出。 (Bug#27224682)

對於從MySQL 5.7升級到8.0,對象定義的sql_mode值可能包含NOT_USED。 (Bug#27219709)

若是沒有選擇默認數據庫,JSON_TABLE()失敗。 (Bug#27217897)

向持有多個鎖的InnoDB表添加惟一索引能夠引起斷言。 (Bug#27216817)

若是未選擇數據庫,則在視圖定義中使用JSON_TABLE()的CREATE VIEW語句失敗。 (錯誤#27189940)

性能架構複製表上的查詢可能會返回不正確的結果,特別是當執行計劃使用索引時。 (錯誤#27184567)

對於某些語句,FILE權限未正確檢查。 (錯誤#27160888)

爲了更好地在啓動時按照與SET PERSIST相同的順序啓用持久變量設置,首先根據時間戳(如今存儲在文件中)對mysqld-auto.cnf中的設置進行排序。 (Bug#27157520)

將dragnet.log_error_filter_rules系統變量設置爲很是長的值可能會致使服務器退出。 (錯誤#27120953)

對於使用systemd的平臺(請參閱使用systemd管理MySQL服務器),systemd並不老是可以推斷出雙叉mysqld進程的狀態。所以,systemd會嘗試從新啓動mysqld,即便該進程以狀態1結束。systemd如今被配置爲以普通進程(Type = notify而不是Type = forking)運行mysqld。若是在環境變量NOTIFY_SOCKET中指定了套接字文件的名稱,則mysqld會嘗試打開一個與systemd進行通訊的鏈接並在其中寫入其狀態更改。 (錯誤#27109556,錯誤#88463,錯誤#26538598,錯誤#87210)

ST_IsValid()爲非WGS 84橢球上的某些地理多邊形返回了不正確的結果。 (Bug#27074700)

包含FULLTEXT鍵和FTS_DOC_ID列的表上的多重插入語句致使服務器錯誤。 (錯誤#27041445,錯誤#88267)

參考文獻:這個問題是一個迴歸:Bug#22679185。

在嚴格的SQL模式下,向AUTO_INCREMENT列分配無效值可能會被錯誤地處理,致使引起斷言。 (錯誤#27041393,錯誤#88273)

線程堆棧耗盡量會引起斷言而不是返回錯誤。 (錯誤#27041350,錯誤#88277)

SET PERSIST_ONLY沒有正確地考慮是否應該調用持久變量的運行時驗證函數。 (Bug#27016247)

audit_log插件可能會錯誤地處理事件執行的停止,致使服務器退出。 (Bug#27008133)

修正了一些否認大符號整數的邊界狀況。 (Bug#27004880,Bug#27008075)

ALTER TABLE操做試圖爲廢棄表空間中的表設置AUTO_INCREMENT值。 (錯誤#26935001)

MyISAM索引損壞可能發生在涉及按排序修復算法和許多(超過4.5億個)行的批量插入和表修復操做中。 (錯誤#26929724)

性能模式能夠產生具備尾部空間的DIGEST_TEXT值。這再也不發生。 (Bug#26908015)

從系統表中刪除索引可能致使服務器退出。 (錯誤#26881798)

使用CREATE TABLE ... SELECT的預準備語句在GROUP BY中引用具備相同名稱的視圖時會致使意外的行爲。 (Bug#26881703)

在禁用自動提交而且處於PREPARED狀態的XA事務時,嘗試執行XA COMMIT或XA ROLLBACK失敗。 (錯誤#26848877,錯誤#87836)

當沒有錯誤發生時,LDAP身份驗證插件生成的某些診斷消息會誤導性地提示錯誤。 (Bug#26844713)

對mysql_upgrade和mysqlpump的初始化代碼進行了從新組織,以免斷言失敗。 (Bug#26802211)

因爲嘗試獲取元數據鎖時出現的錯誤處理不當,全文搜索可能會引起斷言。 (錯誤#26799898)

由64位服務器上的keyring_file沒法訪問由32位服務器上的keyring_file插件建立的密鑰環文件,反之亦然。 (Bug#26793060)

列性統計信息的元數據鎖定在Performance Schema的metadata_locks和events_waits_xxx表中未正確顯示。 (Bug#26772858,Bug#87708)

my_snprintf插件服務已刪除並使用C ++ 11 snprintf從新實現。 (Bug#26696147,Bug#87547)

在具備大量表的服務器上從MySQL 5.7就地升級到MySQL 8.0以後,因爲數據字典建立期間內存消耗過多,服務器啓動失敗。 (錯誤#26486160)

在修改用戶權限的語句中發生的錯誤可能致使嘗試訪問用戶權限緩存的其餘事務發生死鎖。 (Bug#26475282)

線程池插件記錄了失敗鏈接的太多信息。 (Bug#26368725,Bug#86863)

同時啓用多個組件可能會致使服務器退出。 (錯誤#26171471,錯誤#86514)

格式錯誤的mysqld-auto.cnf文件可能致使服務器退出。 (錯誤#26085774)

在保留的表空間中建立表不會返回錯誤。 (錯誤#26073851,錯誤#86309)

對於調試版本,使用KILL終止存儲的例程可能會引起斷言。感謝Laurynas Biveinis的補丁。 (錯誤#26040870,錯誤#86260)

若是設置了init_connect系統變量,則其密碼過時的客戶端沒法執行其內容,所以沒法鏈接。如今,若是客戶端有密碼過時,則會跳過init_connect執行,這將使客戶端鏈接並更改密碼。 (Bug#25968185)

在知足如下全部三個條件的查詢中,使用YYYYMMDD格式的日期未被正確識別:

查詢執行了左鏈接。

鏈接內部表中的DATE列是多列主鍵的一部分。

內部表主鍵中的每一列都與另外一個值進行比較;這多是文字或列值。 (Bug#25949639)

使用外鍵的表上的就地ALTER TABLE操做致使表定義不匹配。在執行ALTER TABLE期間傳遞給存儲引擎方法的新表定義包含無效的外鍵名稱。 (錯誤#25915132,錯誤#85997)

能夠將不存在的角色分配給賬戶做爲其默認角色。 (錯誤#25755666,錯誤#85561)

使用C API時,當試圖執行一個CURSOR_TYPE_READ_ONLY設置的INSERT準備語句時,客戶端掛起。 (錯誤#25701141,錯誤#85105)

即便要重命名的用戶或角色在任何角色圖中都不存在,RENAME USER也會失敗。 (錯誤#25658586)

若是收到格式錯誤的客戶端/服務器協議數據包,MySQL客戶端程序可能會意外退出。 (錯誤#25471090)

由性能模式收集的內存統計信息可能因爲競爭條件而不正確。 (Bug#25212799)

內部散列的CONNECTION_CONTROL插件的錯誤處理致使錯誤日誌和最終服務器退出中的虛假消息。 (錯誤#25052009)

CURRENT_ROLE()和ROLES_GRAPHML()如今返回一個帶有utf8字符集的字符串。之前,他們錯誤地返回了一個二進制字符串。 (Bug#24843257)

殺死INSTALL COMPONENT或UNINSTALL COMPONENT可能致使mysql.component系統表中單個組件的多行。 (錯誤#24660436)

使用X插件併發執行高負載時執行SHOW PROCESSLIST可能會致使計劃外服務器退出。 (錯誤#24621170)

參考文獻:另見:錯誤#23057045。

MySQL中的正則表達式實現使用一個String對象(意圖初始化爲空)來保存當前主題,並使用字符「」做爲該值。這可能會干擾一樣的其餘功能。這經過用nullptr構造String來解決。 (Bug#23276471)

當發生錯誤時,mysqlpump可能會泄漏內存或退出。 (錯誤#23102944)

LDML 2.8歸類定義可能會致使意外的服務器行爲。 (Bug#22819030)

日誌打開操做訪問日誌名稱系統變量而不鎖定它們。訪問這種變量的多個線程可能會致使爭用條件和意外的服務器行爲。 (錯誤#22591899)

當範圍優化器爲長度足夠的字符串計算前綴時,可能會在字符中間截斷字符串,這可能會致使調試版本中的斷言和其餘故障。如今在這種狀況下采起步驟以確保字符串在字符邊界處被截斷。 (Bug#22475473,Bug#13712655)

因爲讀取未初始化的數據,在某些狀況下,在GROUP BY子句中具備子查詢或表達式的查詢可能會返回隨機結果。 (錯誤#20035304)

參考文獻:另見:錯誤#21922202。

audit_log插件沒有記錄準備好的語句的佔位符值。 (Bug#16617026)

即便較小的整數類型更合適,UNION語句中的整數列也能夠轉換爲BIGINT。 (錯誤#11747567,錯誤#33004)

添加了ER_REGEXP_INVALID_CAPTURE_GROUP_NAME(錯誤13110)。 (錯誤#89796,錯誤#27597980)

窗口函數行緩衝區處理已被重構,以將處理程序讀取次數減小25%。 (錯誤#89512,錯誤#27484133)

對於某些框架,當使用設置爲false的windowing_use_high_precision系統變量進行計算時,VARIANCE(),VAR_POP()和VAR_SAMP()函數會產生錯誤的結果。 (錯誤#89390,錯誤#27438725)

當優化器試圖用等同的生成列替換表達式時,沒有考慮生成具備前綴索引的列。這阻止了使用前綴索引來加速使用生成的列表達式的謂詞。 (錯誤#89291,錯誤#27403367)

FIRST_VALUE()並不老是爲空幀返回NULL。 (錯誤#89116,錯誤#27348276)

當一個或多個參數做爲顯式NULL傳遞時,接受可選參數的正則表達式函數不會按預期返回NULL。 (錯誤#88872,錯誤#27252630)

基於行的複製在從屬設備上使用了錯誤的一組索引。 (錯誤#88847,錯誤#27244826)

在沒有選擇默認數據庫的狀況下執行時,EXPLAIN EXTENDED引起了錯誤1046因爲EXTENDED關鍵字已被刪除,因此未選擇數據庫而不是預期的SQL語法錯誤。 (錯誤#88591,錯誤#27153116)

CMake選項OPTIMIZER_TRACE = 0對構建沒有影響,所以再也不使用。 (錯誤#88520,錯誤#27130109)

使用GROUP BY且沒有常量或聚合列的SELECT語句在第一次嘗試失敗時正確檢查了函數依賴關係,但在下一次嘗試中錯誤地成功了。 (錯誤#88474,錯誤#27427677)

參考文獻:另見:錯誤#21807579。

對於DATE列聲明爲NOT NULL的狀況,SELECT語句中具備UNION的CREATE TABLE ... SELECT語句在嚴格模式下失敗。 (錯誤#87711,錯誤#27068222)

使用嵌套子選擇的準備語句並不老是正確處理。 (錯誤#87484,錯誤#26657904)

包含窗口函數的查詢的成本估算未考慮PARTITION BY或ORDER BY的成本,也未包含使用幀緩衝區的成本。 (錯誤#87373,錯誤#26612356)

參考文獻:另見:Bug#26502118。

在使用子查詢處理查詢時,若是已知外部查詢產生空結果,則子查詢再也不進行優化;在這種狀況下,EXPLAIN如今顯示未優化,外部查詢爲空。

進行此更改是由於,若是在優化時發現外部查詢使用的表爲空,則會將鏈接列設置爲NULL(即便定義爲不可爲空),這會在優化子查詢時致使衝突。

若是外部查詢具備聚合但沒有任何GROUP BY,則會發生異常;這意味着它有一個非空結果,而且SELECT列表中的任何子查詢都必須進行評估和優化,從而從新打開可空性問題,如今能夠正確處理這種狀況。 (錯誤#83115,錯誤#24713879)

參考文獻:另見:錯誤#83216,錯誤#24760317。

從組成包含可空列的惟一鍵的全部列中進行選擇時,WHERE條件中的全部列都設置爲非空值,但MySQL沒有考慮其惟一性,結果only_full_group_by錯過了檢測功能依賴列的結果。 (錯誤#79291,錯誤#22279903)

當使用部分索引時,即便部分索引覆蓋了所需的整個數據集,優化器也會執行更昂貴的表查找而不是使用索引。 (錯誤#74359,錯誤#19806106)

相關文章
相關標籤/搜索