- 目前版本5.0.37
- 更新日期2007-03-20
- 檔案大小17.85MB
- 檔案名稱mysql-essential-5.0.37-win32.msi
- 作業系統Windows 7 64 / Windows 8 64 / Windows 10 64 / Windows 11
- 支援語系English
- 授權型式開源軟體
- 開發商 Oracle
- 軟體分類Windows 軟體 / 開發者工具
編輯短評
MySQL 是一套開源且由社群驅動的關聯式資料庫管理系統,主要用來儲存、管理與檢索數據,並以速度快、可靠性高和易於使用著稱。它最鮮明的特色在於具備高度的可擴展性,能從小型應用一路撐起大型企業系統,同時提供最佳化的查詢執行與索引技術,確保資料處理效率;安全性方面也內建多種驗證與加密機制,並支援複寫與叢集以達成高可用性。目前由 Oracle 持續維護,更新相當活躍,在同類開發者工具中屬於主流首選,使用者評價普遍不錯,累積的評分人數也相當可觀。
這套軟體適合需要建構資料驅動應用程式的開發者,無論是網站後端、企業內部系統或數據分析平台,都能派上用場。它主要透過命令列介面運作,對熟悉指令的進階使用者較友善,但市面上有許多第三方圖形介面工具可補足操作門檻。與同分類的 BlueStacks、Turbo C++ 或 VMware 等工具相比,MySQL 專注於資料庫核心服務,並非整合開發環境或虛擬化方案,取捨上更偏向純粹的資料層需求。授權為開源軟體,提供 Windows 與 macOS 版本,但介面僅支援英文,使用前需留意語系與操作習慣。
軟體介紹
它以速度快、可靠性高且易於使用而聞名,使其成為小型應用程式與大型企業系統的理想選擇。
由 Oracle Corporation 開發,MySQL Community Server 提供了一套完整的工具與功能,讓開發者能夠輕鬆建構動態且由數據驅動的應用程式。
Key Features
Scalability
它能處理海量數據,並可毫不費力地擴展以滿足日益增長的需求。
Performance
憑藉優化的 Query Execution 與 Indexing 技術,它能確保快速的數據檢索與處理速度。
Security
它提供多種 Authentication 機制與 Encryption 選項,以保護敏感數據的安全。
High Availability
它支援 Replication 與 Clustering,可實現冗餘備援並確保數據的持續可用性。
Flexibility
MySQL 相容於多種作業系統並支援多種程式語言,具有極高的通用性。
User Interface
MySQL Database Server 主要透過 Command-line Interface (CLI) 運作,適合經驗豐富的使用者與開發者。
然而,許多第三方工具提供了 Graphical User Interface (GUI),簡化了資料庫管理任務,例如建立表格、執行查詢以及監控效能。
常見的 GUI 選項包括 phpMyAdmin, MySQL Workbench 以及 Navicat。
Installation and Setup
它為 Windows, macOS 與 Linux 等主流作業系統提供安裝套件。
安裝過程非常簡單,通常只需執行安裝程式並按照提示操作即可。
在設定過程中,使用者可以配置資料庫設定、定義存取權限以及指定儲存選項。
此外,它也可以作為 Web 開發 Stack 的一部分(例如 XAMPP 或 WAMP)進行安裝,以建立完整的開發環境。
How to Use
為了有效地使用 MySQL,使用者應對 SQL (Structured Query Language) 以及資料庫管理原則有基本的了解。
它提供豐富的 SQL 指令集用於建立、檢索、更新與刪除數據。開發者可以使用專用的 Connector 與 Library 將 MySQL 整合至其選擇的程式語言中,例如 Java 的 MySQL Connector/J 或 Python 的 MySQL Connector/Python。
目前有大量的官方文件與線上資源可幫助使用者學習並精通 MySQL 的功能。
FAQ
Q: 我可以將現有的資料庫遷移到 MySQL Community Server 嗎?
A: 可以,它提供了將資料庫從其他 RDBMS(如 Oracle, SQL Server 和 PostgreSQL)遷移的工具與公用程式。
Q: MySQL 適合大型應用程式嗎?
A: 絕對適合!MySQL 的 Scalability 與 Performance 使其成為管理企業級應用程式數據的絕佳選擇。
Q: 免費開源版本的 MySQL 有任何限制嗎?
A: 開源版本提供了豐富的功能,但若需要進階功能(如即時分析與企業級支援),使用者可以考慮訂閱制且功能更強大的 MySQL Enterprise Edition。
Q: 我可以防止未經授權的存取來保護我的 MySQL 資料庫嗎?
A: 可以,它提供了強大的安全功能,包括 User Authentication、Access Control 與 Encryption 機制,以保護您的數據免於未經授權的存取。
Q: MySQL 支援 Stored Procedures 和 Triggers 嗎?
A: 是的,它支援 Stored Procedures, Triggers 以及 Functions,允許開發者在資料庫內執行複雜的操作並自動化任務。
Alternatives
雖然 MySQL Database Server 在 RDBMS 市場佔據主導地位,但仍有其他替代方案可供選擇,且各有其獨特功能與優勢。值得關注的替代產品包括:
Microsoft SQL Server: 針對 Windows 平台設計,提供強大的企業級功能、與 Microsoft 產品的無縫整合以及卓越的 Scalability。
PostgreSQL: 以注重標準合規性與進階功能著稱,是一款適用於複雜數據場景的強大開源 DBMS。
Oracle Database: 作為商業 RDBMS,提供極高性能、進階安全性和廣泛的管理工具,適合大型企業級應用。
SQLite: 理想的小型輕量化應用選擇,是一款 Serverless DBMS,在簡便性、可移植性與零配置部署方面表現出色。
Pricing
MySQL 主要分為兩個版本:Community Edition (免費開源) 與 Enterprise Edition (商業版,提供額外功能與支援)。
Community Edition 是大多數使用者的熱門選擇,而 Enterprise Edition 則需要訂閱,並提供量身打造的企業級進階功能。
此外,他們還提供以下產品:
- MySQL HeatWave
- MySQL Enterprise Edition
- MySQL Standard Edition
- MySQL Classic Edition
- MySQL Cluster CGE
- MySQL Embedded (OEM/ISV)
MySQL 的系統需求依據所使用的作業系統與版本而異。
一般而言,它支援 Windows, macOS 以及各種 Linux 發行版。
根據資料庫的大小與複雜程度,需要充足的磁碟空間、記憶體與處理能力。
PROS
- 開源且免費的 Community Server Edition
- 高效能與高 Scalability
- 強大的安全功能
- 豐富的文件紀錄與活躍的社群支援
- 相容於多種程式語言
- Command-line Interface 對初學者來說可能較具挑戰性
- 部分進階功能僅限於 Enterprise Edition
- 複雜的設定可能需要額外的配置與優化
MySQL Community Server 是一款可靠且功能豐富的 RDBMS,在管理關聯式資料庫方面享有盛名。其速度、Scalability 與通用性使其適用於從小型專案到企業級系統的各種應用。
雖然 Command-line Interface 對初學者而言可能需要一定的學習曲線,但 GUI 工具的出現簡化了資料庫管理流程。憑藉龐大的社群與詳盡的文件,它將繼續作為軟體開發生態系統中的核心工具。無論您是開發者、數據分析師還是企業主,MySQL 都能讓您高效地組織與存取數據,為您的專案與計畫帶來成功。
Also Available: MySQL for Mac
Download MySQL Latest Version Why is this app published on FileHorse? (More info)
畫面截圖
更新日誌
5.0.37 Functionality added or changed:
- Added the SHOW PROFILES and SHOW PROFILE statements to display statement profile data, and the accompanying INFORMATION_SCHEMA.PROFILING table. Profiling is controlled via the profiling and profiling_history_size session variables. see Section 13.5.4.22, SHOW PROFILES and SHOW PROFILE Syntax, and Section 20.17, The INFORMATION_SCHEMA PROFILING Table. (From Jeremy Cole) (Bug#24795)
- Added the Uptime_since_flush_status status variable, which indicates the number of seconds since the most recent FLUSH STATUS statement. (From Jeremy Cole) (Bug#24822)
- Incompatible change: Previously, the DATE_FORMAT() function returned a binary string. Now it returns a string with a character set and collation given by character_set_connection and collation_connection so that it can return month and weekday names containing non-ASCII characters. (Bug#22646)
- NDB Cluster: The LockPagesInMainMemory configuration parameter has changed its type and possible values. For more information, see LockPagesInMainMemory. (Bug#25686)
- Important: The values true and false are no longer accepted for this parameter. If you were using this parameter and had it set to false in a previous release, you must change it to 0. If you had this parameter set to true, you should instead use 1 to obtain the same behavior as previously, or 2 to take advantage of new functionality introduced with this release described in the section cited above.
- Important: When using MERGE tables the definition of the MERGE table and the MyISAM tables are checked each time the tables are opened for access (including any SELECT or INSERT statement. Each table is compared for column order, types, sizes and associated. If there is a difference in any one of the tables then the statement will fail.
- The localhost anonymous user account created during MySQL installation on Windows now has no global privileges. Formerly this account had all global privileges. For operations that require global privileges, the root account can be used instead. (Bug#24496)
- The bundled yaSSL library was upgraded to version 1.5.8.
- The --skip-thread-priority option now is enabled by default for binary Mac OS X distributions. Use of thread priorities degrades performance on Mac OS X. (Bug#18526)
- Added the --disable-grant-options option to configure. If configure is run with this option, the --bootstrap, --skip-grant-tables, and --init-file options for mysqld are disabled and cannot be used. For Windows, the configure.js script recognizes the DISABLE_GRANT_OPTIONS flag, which has the same effect.
Bugs fixed:
- Incompatible change: For ENUM columns that had enumeration values containing commas, the commas were mapped to 0xff internally. However, this rendered the commas indistinguishable from true 0xff characters in the values. This no longer occurs. However, the fix requires that you dump and reload any tables that have ENUM columns containing true 0xff in their values: Dump the tables using mysqldump with the current server before upgrading from a version of MySQL 5.0 older than 5.0.36 to version 5.0.36 or newer. (Bug#24660)
- If the duplicate key value was present in the table, INSERT ... ON DUPLICATE KEY UPDATE reported a row count indicating that a record was updated, even when no record actually changed due to the old and new values being the same. Now it reports a row count of zero. (Bug#19978)
- Some UPDATE statements were slower than in previous versions when the search key could not be converted to a valid value for the type of the search column. (Bug#24035)
- The WITH CHECK OPTION clause for views was ignored for updates of multiple-table views when the updates could not be performed on fly and the rows to update had to be put into temporary tables first. (Bug#25931)
- Using ORDER BY or GROUP BY could yield different results when selecting from a view and selecting from the underlying table. (Bug#26209)
- LAST_INSERT_ID() was not reset to 0 if INSERT ... SELECT inserted no rows. (Bug#23170)
- Storing values specified as hexadecimal values 64 or more bits long into BIT(64), BIGINT, or BIGINT UNSIGNED columns did not raise any warning or error if the value was out of range. (Bug#22533)
- Inserting DEFAULT into a column with no default value could result in garbage in the column. Now the same result occurs as when inserting NULL into a NOT NULL column. (Bug#20691)
- The presence of ORDER BY in a view definition prevented the MERGE algorithm from being used to resolve the view even if nothing else in the definition required the TEMPTABLE algorithm. (Bug#12122)
- ISNULL(DATE(NULL)) and ISNULL(CAST(NULL AS DATE)) erroneously returned false. (Bug#23938)
- If a slave server closed its relay log (for example, due to an error during log rotation), the I/O thread did not recognize this and still tried to write to the log, causing a server crash. (Bug#10798)
- Using an INFORMATION_SCHEMA table with ORDER BY in a subquery could cause a server crash. (Bug#24630, Bug#26556)
- Collation for LEFT JOIN comparisons could be evaluated incorrectly, leading to improper query results. (Bug#26017)
- For the IF() and COALESCE() function and CASE expressions, large unsigned integer values could be mishandled and result in warnings. (Bug#22026)
- The number of setsockopt() calls performed for reads and writes to the network socket was reduced to decrease system call overhead. (Bug#22943)
- A WHERE clause that used BETWEEN for DATETIME values could be treated differently for a SELECT and a view defined as that SELECT. (Bug#26124)
- ORDER BY on DOUBLE values could change the set of rows returned by a query. (Bug#19690)
- The code for generating USE statements for binary logging of CREATE PROCEDURE statements resulted in confusing output from mysqlbinlog for DROP PROCEDURE statements. (Bug#22043)
- LOAD DATA INFILE did not work with pipes. (Bug#25807)
- DISTINCT queries that were executed using a loose scan for an InnoDB table that had been emptied caused a server crash. (Bug#26159)
- The InnoDB parser sometimes did not account for null bytes, causing spurious failure of some queries. (Bug#25596)
- Type conversion errors during formation of index search conditions were not correctly checked, leading to incorrect query results. (Bug#22344)
- Within a stored routine, accessing a declared routine variable with PROCEDURE ANALYSE() caused a server crash. (Bug#23782)
- Use of already freed memory caused SSL connections to hang forever. (Bug#19209)
- mysql.server stop timed out too quickly (35 seconds) waiting for the server to exit. Now it waits up to 15 minutes, to ensure that the server exits. (Bug#25341)
- A yaSSL program named test was installed, causing conflicts with the test system utility. It is no longer installed. (Bug#25417)
- perror crashed on some platforms due to failure to handle a NULL pointer. (Bug#25344)
- mysql_stmt_fetch() did an invalid memory deallocation when used with the embedded server. (Bug#25492)
- mysql_kill() caused a server crash when used on an SSL connection. (Bug#25203)
- The readline library wrote to uninitialized memory, causing mysql to crash. (Bug#19474)
- yaSSL was sensitive to the presence of whitespace at the ends of lines in PEM-encoded certificates, causing a server crash. (Bug#25189)
- mysqld_multi and mysqlaccess looked for option files in /etc even if the --sysconfdir option for configure had been given to specify a different directory. (Bug#24780)
- The SEC_TO_TIME() and QUARTER() functions sometimes did not handle NULL values correctly. (Bug#25643)
- With ONLY_FULL_GROUP_BY enables, the server was too strict: Some expressions involving only aggregate values were rejected as non-aggregate (for example, MAX(a) - MIN(a)). (Bug#23417)
- The arguments of the ENCODE() and the DECODE() functions were not printed correctly, causing problems in the output of EXPLAIN EXTENDED and in view definitions. (Bug#23409)
- An error in the name resolution of nested JOIN ... USING constructs was corrected. (Bug#25575)
- A return value of -1 from user-defined handlers was not handled well and could result in conflicts with server code. (Bug#24987)
- The server might fail to use an appropriate index for DELETE when ORDER BY, LIMIT, and a non-restricting WHERE are present. (Bug#17711)
- Use of ON DUPLICATE KEY UPDATE defeated the usual restriction against inserting into a join-based view unless only one of the underlying tables is used. (Bug#25123)
- Some queries against INFORMATION_SCHEMA that used subqueries failed. (Bug#23299).
- SHOW COLUMNS reported some NOT NULL columns as NULL. (Bug#22377)
- View definitions that used the ! operator were treated as containing the NOT operator, which has a different precedence and can produce different results. (Bug#25580).
- For a UNIQUE index containing many NULL values, the optimizer would prefer the index for col IS NULL conditions over other more selective indexes. (Bug#25407).
- GROUP BY and DISTINCT did not group NULL values for columns that have a UNIQUE index. (Bug#25551).
- ALTER TABLE ... ENABLE KEYS acquired a global lock, preventing concurrent execution of other statements that use tables. (Bug#25044).
- For an InnoDB table with any ON DELETE trigger, TRUNCATE TABLE mapped to DELETE and activated triggers. Now a fast truncation occurs and triggers are not activated. (Bug#23556).
- For ALTER TABLE, using ORDER BY expression could cause a server crash. Now the ORDER BY clause allows only column names to be specified as sort criteria (which was the only documented syntax, anyway). (Bug#24562)
- readline detection did not work correctly on NetBSD. (Bug#23293)
- The --with-readline option for configure does not work for commercial source packages, but no error message was printed to that effect. Now a message is printed. (Bug#25530)
- If an ORDER BY or GROUP BY list included a constant expression being optimized away and, at the same time, containing single-row subselects that return more that one row, no error was reported. If a query requires sorting by expressions containing single-row subselects that return more than one row, execution of the query may cause a server crash. (Bug#24653)
- Attempts to access a MyISAM table with a corrupt column definition caused a server crash. (Bug#24401)
- To enable installation of MySQL RPMs on Linux systems running RHEL 4 (which includes SE-Linux) additional information was provided to specify some actions that are allowed to the MySQL binaries. (Bug#12676)
- When SET PASSWORD was written to the binary log double quotes were included in the statement. If the slave was running in with the sql_mode set to ANSI_QUOTES the event would fail and halt the replication process. (Bug#24158)
- Accessing a fixed record format table with a crashed key definition results in server/myisamchk segmentation fault. (Bug#24855)
- When opening a corrupted .frm file during a query, the server crashes. (Bug#24358)
- If there was insufficient memory to store or update a blob record in a MyISAM table then the table will marked as crashed. (Bug#23196)
- When updating a table that used a JOIN of the table itself (for example, when building trees) and the table was modified on one side of the expression, the table would either be reported as crashed or the wrong rows in the table would be updated. (Bug#21310)
- Queries that evaluate NULL IN (SELECT ... UNION SELECT ...) could produce an incorrect result (FALSE instead of NULL). (Bug#24085)
- When reading from the standard input on Windows, mysqlbinlog opened the input in text mode rather than binary mode and consequently misinterpreted some characters such as Control-Z. (Bug#23735)
- Within stored routines or prepared statements, inconsistent results occurred with multiple use of INSERT ... SELECT ... ON DUPLICATE KEY UPDATE when the ON DUPLICATE KEY UPDATE clause erroneously tried to assign a value to a column mentioned only in its SELECT part. (Bug#24491)
- Expressions of the form (a, b) IN (SELECT a, MIN(b) FROM t GROUP BY a) could produce incorrect results when column a of table t contained NULL values while column b did not. (Bug#24420)
- Expressions of the form (a, b) IN (SELECT c, d ...) could produce incorrect results if a, b, or both were NULL. (Bug#24127)
- No warning was issued for use of the DATA DIRECTORY or INDEX DIRECTORY table options on a platform that does not support them. (Bug#17498)
- When a prepared statement failed during the prepare operation, the error code was not cleared when it was reused, even if the subsequent use was successful. (Bug#15518)
- mysql_upgrade failed when called with a basedir pathname containing spaces. (Bug#22801)
- Hebrew-to-Unicode conversion failed for some characters. Definitions for the following Hebrew characters (as specified by the ISO/IEC 8859-8:1999) were added: LEFT-TO-RIGHT MARK (LRM), RIGHT-TO-LEFT MARK (RLM) (Bug#24037)
- An AFTER UPDATE trigger on an InnoDB table with a composite primary key caused the server to crash. (Bug#25398)
- A query that contained an EXIST subquery with a UNION over correlated and uncorrelated SELECT queries could cause the server to crash. (Bug#25219)
- A query with ORDER BY and GROUP BY clauses where the ORDER BY clause had more elements than the GROUP BY clause caused a memory overrun leading to a crash of the server. (Bug#25172)
- If there was insufficient memory available to mysqld, this could sometimes cause the server to hang during startup. (Bug#24751)
- If a prepared statement accessed a view, access to the tables listed in the query after that view was checked in the security context of the view. (Bug#24404)
- A query using WHERE unsigned_column NOT IN ('negative_value') could cause the server to crash. (Bug#24261)
- A FETCH statement using a cursor on a table which was not in the table cache could sometimes cause the server to crash. (Bug#24117)
- SSL connections could hang at connection shutdown. (Bug#24148)
- The STDDEV() function returned a positive value for data sets consisting of a single value. (Bug#22555)
- mysqltest incorrectly tried to retrieve result sets for some queries where no result set was available. (Bug#19410)
- mysqltest crashed with a stack overflow. (Bug#24498)
- Passing a NULL value to a user-defined function from within a stored procedure crashes the server. (Bug#25382)
- The row count for MyISAM tables was not updated properly, causing SHOW TABLE STATUS to report incorrect values. (Bug#23526)
- The BUILD/check-cpu script did not recognize Celeron processors. (Bug#20061)
- On Windows, the SLEEP() function could sleep too long, especially after a change to the system clock. (Bug#14094, Bug#17635, Bug#24686)
- A stored routine containing semicolon in its body could not be reloaded from a dump of a binary log. (Bug#20396)
- For SET, SELECT, and DO statements that invoked a stored function from a database other than the default database, the function invocation could fail to be replicated. (Bug#19725)
- SET lc_time_names = value allowed only exact literal values, not expression values. (Bug#22647)
- Changes to the lc_time_names system variable were not replicated. (Bug#22645)
- SELECT ... FOR UPDATE, SELECT ... LOCK IN SHARE MODE, DELETE, and UPDATE statements executed using a full table scan were not releasing locks on rows that did not satisfy the WHERE condition. (Bug#20390)
- A stored procedure, executed from a connection using a binary character set, and which wrote multibyte data, would write incorrectly escaped entries to the binary log. This caused syntax errors, and caused replication to fail. (Bug#23619, Bug#24492)
- mysqldump --order-by-primary failed if the primary key name was an identifier that required quoting. (Bug#13926)
- Re-execution of CREATE DATABASE, CREATE TABLE, and ALTER TABLE statements in stored routines or as prepared statements caused incorrect results or crashes. (Bug#22060)
- The internal functions for table preparation, creation, and alteration were not re-execution friendly, causing problems in code that: repeatedly altered a table; repeatedly created and dropped a table; opened and closed a cursor on a table, altered the table, and then reopened the cursor. (Bug#4968, Bug#6895, Bug#19182, Bug#19733)
- A workaround was implemented to avoid a race condition in the NPTL pthread_exit() implementation. (Bug#24507)
- NDB Cluster (Cluster APIs): libndbclient.so was not versioned. (Bug#13522)
- NDB Cluster: The ndb_size.tmpl file (necessary for using the ndb_size.pl script) was missing from binary distributions. (Bug#24191)
- NDB Cluster: A query with an IN clause against an NDB table employing explicit user-defined partitioning did not always return all matching rows. (Bug#25821)
- NDB Cluster: An UPDATE using an IN clause on an NDB table on which there was a trigger caused mysqld to crash. (Bug#25522)
- NDB Cluster (Cluster APIs): Deletion of an Ndb_cluster_connection object took a very long time. (Bug#25487)
- NDB Cluster: It was not possible to create an NDB table with a key on two VARCHAR columns where both columns had a storage length in excess of 256. (Bug#25746)
- NDB Cluster: In some circumstances, shutting down the cluster could cause connected mysqld processes to crash. (Bug#25668)
- NDB Cluster: Memory allocations for TEXT columns were calculated incorrectly, resulting in space being wasted and other issues. (Bug#25562)
- NDB Cluster: The failure of a master node during a node restart could lead to a resource leak, causing later node failures. (Bug#25554)
- NDB Cluster: The management server did not handle logging of node shutdown events correctly in certain cases. (Bug#22013)
- NDB Cluster: A node shutdown occurred if the master failed during a commit. (Bug#25364)
- NDB Cluster: Creating a non-unique index with the USING HASH clause silently created an ordered index instead of issuing a warning. (Bug#24820)
- NDB Cluster: SELECT statements with a BLOB or TEXT column in the selected column list and a WHERE condition including a primary key lookup on a VARCHAR primary key produced empty result sets. (Bug#19956)
- Optimizations that are legal only for subqueries without tables and WHERE conditions were applied for any subquery without tables. (Bug#24670)
- The server was built even when configure was run with the --without-server option. (Bug#23973)
- mysqld_error.h was not installed when only the client libraries were built. (Bug#21265)
- Using a view in combination with a USING clause caused column aliases to be ignored. (Bug#25106)
- A view was not handled correctly if the SELECT part contained . (Bug#24293)
- Inserting a row into a table without specifying a value for a BINARY(N) NOT NULL column caused the column to be set to spaces, not zeroes. (Bug#14171)
- An assertion failed incorrectly for prepared statements that contained a single-row non-correlated subquery that was used as an argument of the IS NULL predicate. (Bug#25027)
- A table created with the ROW_FORMAT = FIXED table option loses the option if an index is added or dropped with CREATE INDEX or DROP INDEX. (Bug#23404)
- Dropping a user-defined function sometimes did not remove the UDF entry from the mysql.proc table. (Bug#15439)
- Changing the value of MI_KEY_BLOCK_LENGTH in myisam.h and recompiling MySQL resulted in a myisamchk that saw existing MyISAM tables as corrupt. (Bug#22119)
- Instance Manager could crash during shutdown. (Bug#19044)
- A deadlock could occur, with the server hanging on Closing tables, with a sufficient number of concurrent INSERT DELAYED, FLUSH TABLES, and ALTER TABLE operations. (Bug#23312)
- A user-defined variable could be assigned an incorrect value if a temporary table was employed in obtaining the result of the query used to determine its value. (Bug#16861)
- The optimizer removes expressions from GROUP BY and DISTINCT clauses if they happen to participate in expression = constant predicates of the WHERE clause, the idea being that, if the expression is equal to a constant, then it cannot take on multiple values. However, for predicates where the expression and the constant item are of different result types (for example, when a string column is compared to 0), this is not valid, and can lead to invalid results in such cases. The optimizer now performs an additional check of the result types of the expression and the constant; if their types differ, then the expression is not removed from the GROUP BY list. (Bug#15881)
- Referencing an ambiguous column alias in an expression in the ORDER BY clause of a query caused the server to crash. (Bug#25427)
- Some CASE statements inside stored routines could lead to excessive resource usage or a crash of the server. (Bug#24854, Bug#19194)
- Some joins in which one of the joined tables was a view could return erroneous results or crash the server. (Bug#24345)
- OPTIMIZE TABLE tried to sort R-tree indexes such as spatial indexes, although this is not possible (see Section 13.5.2.5, OPTIMIZE TABLE Syntax). (Bug#23578)
- User-defined variables could consume excess memory, leading to a crash caused by the exhaustion of resources available to the MEMORY storage engine, due to the fact that this engine is used by MySQL for variable storage and intermediate results of GROUP BY queries. Where SET had been used, such a condition could instead give rise to the misleading error message You may only use constant expressions with SET, rather than Out of memory (Needed NNNNNN bytes). (Bug#23443)
- InnoDB: During a restart of the MySQL Server that followed the creation of a temporary table using the InnoDB storage engine, MySQL failed to clean up in such a way that InnoDB still attempted to find the files associated with such tables. (Bug#20867)
- A multi-table DELETE QUICK could sometimes cause one of the affected tables to become corrupted. (Bug#25048)
- A compressed MyISAM table that became corrupted could crash myisamchk and possibly the MySQL Server. (Bug#23139)
- A crash of the MySQL Server could occur when unpacking a BLOB column from a row in a corrupted MyISAM table. This could happen when trying to repair a table using either REPAIR TABLE or myisamchk; it could also happen when trying to access such a broken row using statements like SELECT if the table was not marked as crashed. (Bug#22053)
- The FEDERATED storage engine did not support the euckr character set. (Bug#21556)
- The FEDERATED storage engine did not support the utf8 character set. (Bug#17044)
- NDB Cluster: Hosts in clusters with a large number of nodes could experience excessive CPU usage while obtaining configuration data. (Bug#25711)
- NDB Cluster (NDB API): Invoking the NdbTransaction::execute() method using execution type Commit and abort option AO_IgnoreError could lead to a crash of the transaction coordinator (DBTC). (Bug#25090)
- NDB Cluster (NDB API): A unique index lookup on a non-existent tuple could lead to a data node timeout (error 4012). (Bug#25059)
- NDB Cluster: When a data node was shut down using the management client STOP command, a connection event (NDB_LE_Connected) was logged instead of a disconnection event (NDB_LE_Disconnected). (Bug#22773)
- 2026-08-04 MySQL 8.0.46.0 566 MB
- 2026-01-20 MySQL 8.0.45.0 556 MB
- 2025-10-22 MySQL 8.0.44.0 558 MB
- 2025-07-23 MySQL 8.0.43.0 354 MB
- 2025-07-22 MySQL 8.0.42.0 354 MB
- 2025-01-21 MySQL 8.0.41.0 352 MB
- 2024-10-16 MySQL 8.0.40.0 306 MB
- 2024-07-29 MySQL 8.0.39.0 285 MB




