Windows Notes
This release of MySQL has two known outstanding issues for Windows:
The .msi installer does not detect an
existing root password on the initial
configuration attempt. To work around this, install and
configure MySQL as normal, but skip any changes to security.
(There is a check box that enables this on the security
screen of the configuration wizard.) Then check your
settings:
If the old root password and security
settings are okay, you are done and can proceed to use
MySQL.
Otherwise, reconfigure with the wizard and make any
changes on the second configuration attempt. The wizard
will properly prompt for the existing
root password and permit changes to
be made.
This issue has been filed as Bug #45200 for correction in a future release.
The Windows configuration wizard permits changes to
InnoDB settings during a reconfiguration
operation. For an upgrade, this may cause difficulties. To
work around this, use one of the following alternatives:
Do not change InnoDB settings.
Copy files from the old InnoDB
location to the new one.
This issue has been filed as Bug #45201 for correction in a future release.
Bugs Fixed
Performance:
If the character set for a column being compared was neither the
default server character set nor latin1,
InnoDB was slower than necessary due to
excessive contention for a character set mutex.
As a workaround for earlier versions, set the default server
character set to the character set other than
latin1 that is most often used in indexed
columns.
(Bug #42649)
Performance:
InnoDB uses random numbers to
generate dives into indexes for calculating index cardinality.
However, under certain conditions, the algorithm did not
generate random numbers, so ANALYZE
TABLE did not update cardinality estimates properly. A
new algorithm has been introduced with better randomization
properties, together with a system variable,
innodb_use_legacy_cardinality_algorithm,
that controls which algorithm to use. The default value of the
variable is 1 (ON), to use the original
algorithm for compatibility with existing applications. The
variable can be set to 0 (OFF) to use the new
algorithm with improved randomness.
(Bug #43660)
Important Change; Replication:
The transactional behavior of STOP
SLAVE has changed. Formerly, it took effect
immediately, even inside a transaction; now, it waits until the
current replication event group (if any) has finished executing,
or until the user issues a
KILL QUERY or
KILL CONNECTION
statement.
This was done to solve the problem encountered when replication
was stopped while a nontransactional slave was replicating a
transaction on the master. (It was impossible to roll back a
mixed-engines transaction when one of the engines was
nontransactional, which meant that the slave could not safely
re-apply any transaction that had been interrupted by
STOP SLAVE.)
(Bug #319, Bug #38205)
References: See also Bug #43217.
Partitioning:
When a value was equal to a PARTITION ... VALUES LESS
THAN ( value other
than value)MAXVALUE, the corresponding partition
was not pruned.
(Bug #42944)
Replication:
Unrelated errors occurring during the execution of
RESET SLAVE could cause the slave
to crash.
(Bug #44179)
Replication:
The --slave-skip-errors option
had no effect when using row-based logging format.
(Bug #39393)
Replication: The following errors were not correctly reported:
Failures during slave thread initialization
Information about these types of failures can now be found in
the output of SHOW SLAVE
STATUS.
(Bug #38197)
Replication: Killing the thread executing a DDL statement, after it had finished its execution but before it had written the binlog event, caused the error code in the binlog event to be set (incorrectly) to ER_SERVER_SHUTDOWN or ER_QUERY_INTERRUPTED, which caused replication to fail. (Bug #37145)
References: See also Bug #27571, Bug #22725.
Replication: Column aliases used inside subqueries were ignored in the binary log. (Bug #35515)
MySQL Server permitted the creation of a merge table based on views but crashed when attempts were made to read from that table. The following example demonstrates this:
#Create a test table CREATE TABLE tmp (id int, c char(2)); #Create two VIEWs upon it CREATE VIEW v1 AS SELECT * FROM tmp; CREATE VIEW v2 AS SELECT * FROM tmp; #Finally create a MERGE table upon the VIEWs CREATE TABLE merge (id int, c char(2)) ENGINE=MERGE UNION(v1, v2); #Reading from the merge table lead to a crash SELECT * FROM merge;
The final statement generated the crash. (Bug #44040)
The ucs2_swedish_ci and
utf8_swedish_ci collations did not work with
indexes using the IBMDB2I storage engine.
Support is now provided for MySQL when running on IBM i 6.1 or
higher.
(Bug #44020)
Some schema names longer than 8 characters were not supported by
IBMDB2I. The engine has been updated to
permit digits and underscore characters to be used in names
longer than 8 characters.
(Bug #44025)
In some circumstances, when a table is created with the
IBMDB2I engine, the CREATE
TABLE statement will return successfully but the table
will not exist.
(Bug #44022)
Using an XML function such as
ExtractValue() more than once in
a single query could produce erroneous results.
(Bug #43183)
References: See also Bug #43937.
CHECKSUM TABLE was not killable
with KILL QUERY.
(Bug #33146)
For some queries, an equality propagation problem could cause
a = b and b = a to be
handled differently.
(Bug #40925)
CHECK TABLE did not properly
check whether MyISAM tables created by
servers from MySQL 4.0 or older needed to be upgraded. This
could cause problems upgrading to MySQL 5.1 or higher.
(Bug #37631)
An UPDATE statement that updated
a column using the same
DES_ENCRYPT() value for each row
actually updated different rows with different values.
(Bug #35087)
On Windows, running the server with
myisam_use_mmap enabled caused
MyISAM table corruption.
(Bug #38848)
Valgrind warnings for the
DECODE(),
ENCRYPT(), and
FIND_IN_SET() functions were
corrected.
(Bug #44358, Bug #44365, Bug #44367)
CHECK TABLE suggested use of
REPAIR TABLE for corrupt tables
for storage engines not supported by REPAIR
TABLE. Now CHECK TABLE
suggests that the user dump and reload the table.
(Bug #42563)
A stored routine contain a C-style comment could not be dumped and reloaded. (Bug #39559)
A multiple-table DELETE
IGNORE statement involving a foreign key constraint
caused an assertion failure.
(Bug #40127)
The mysql_setpermission operation for removing database privileges removed global privileges instead. (Bug #39852)
For shared-memory connections, the read and write methods did
not properly handle asynchronous close events, which could lead
to the client locking up waiting for a server response. For
example, a call to
mysql_real_query() would block
forever on the client side if the executed statement was aborted
on the server side. Thanks to Armin Schöffmann for the bug
report and patch.
(Bug #33899)
Multiple-table UPDATE statements
did not properly activate triggers.
(Bug #39953)
In an UPDATE or
DELETE through a secondary index,
InnoDB did not store the cursor position.
This made InnoDB crash in semi-consistent
read while attempting to unlock a nonmatching record.
(Bug #39320)
Compressing a table with the myisampack utility caused the server to produce Valgrind warnings when it opened the table. (Bug #41541)
For a MyISAM table with
DELAY_KEY_WRITE enabled, the index file could
be corrupted without the table being marked as crashed if the
server was killed.
(Bug #41330)
Killing an INSERT
... SELECT statement for a MyISAM
table could cause table corruption if the table had indexes.
(Bug #40827)
Incomplete cleanup of JOIN_TAB::select during
the filesort of rows for a GROUP BY clause
inside a subquery caused a server crash.
(Bug #44290)
Incorrect elevation of warning messages to error messages for unsafe statements caused a server crash. (Bug #42640)
ALTER DATABASE
... UPGRADE DATA DIRECTORY NAME failed when the
database contained views.
(Bug #43385)
UNION of floating-point numbers
did unnecessary rounding.
(Bug #43432)
Certain statements might open a table and then wait for an
impending global read lock without noticing whether they hold a
table being waiting for by the global read lock, causing a hang.
Affected statements are
SELECT ... FOR
UPDATE,
LOCK TABLES ...
WRITE, TRUNCATE TABLE,
and LOAD DATA
INFILE.
(Bug #43230)
Incorrect initialization of MyISAM table
indexes could cause incorrect query results.
(Bug #43737)
libmysqld crashed when it was reinitialized.
(Bug #43706, Bug #44091)
On Windows, entries for build-vs9.bat and
build-vs9_x64.bat were missing in
win/Makefile.am.
(Bug #44353)
Full-text prefix searches could hang the connection and cause 100% CPU consumption. (Bug #42907)
SHOW VARIABLES did not properly
display the value of
slave_skip_errors.
(Bug #43835)
On 64-bit systems, a
key_buffer_size value larger
than 4GB could couse MyISAM index corruption.
(Bug #43932)
myisamchk could display a negative
Max keyfile length value.
(Bug #43950)
Invoking SHOW TABLE STATUS from
within a stored procedure could cause a Packets out of
order error.
(Bug #43962)
Use of HANDLER statements with
INFORMATION_SCHEMA tables caused a server
crash. Now HANDLER is prohibited
with such tables.
(Bug #44151)
Not all lock types had proper descriptive strings, resulting in garbage output from mysqladmin debug. (Bug #44164)
On Windows, a server crash occurred for attempts to insert a
floating-point value into a CHAR
column with a maximum length less than the converted
floating-point value length.
(Bug #43833)
The functions listed in Creating Geometry Values Using MySQL-Specific Functions, previously accepted WKB arguments and returned WKB values. They now accept WKB or geometry arguments and return geometry values.
The functions listed in Creating Geometry Values Using WKB Functions, previously accepted WKB arguments and returned geometry values. They now accept WKB or geometry arguments and return geometry values. (Bug #38990)
mysqld_multi incorrectly passed
--no-defaults to
mysqld_safe.
(Bug #43876)
For InnoDB tables that have their own
.ibd tablespace file, a superfluous
ibuf cursor restoration fails! message could
be written to the error log. This warning has been suppressed.
(Bug #27276)
Several memory allocation functions were not being checked for out-of-memory return values. (Bug #25058)
COMMIT did not delete savepoints
if there were no changes in the transaction.
(Bug #26288)
myisamchk and myisampack
were not being linked with the library that enabled support for
* file name pattern expansion.
(Bug #29248)