End of Product Lifecycle. Active development and support for MySQL Database Server versions 3.23, 4.0, and 4.1 has ended. For details, see http://www.mysql.com/about/legal/lifecycle/#calendar. Please consider upgrading to a recent version. Further updates to the content of this manual will be minimal. All formats of this manual will continue to be available until 31 Dec 2010.
Functionality added or changed:
Option values in option files now may be quoted. This is useful for values that contain whitespace or comment characters.
Write memory allocation information to error log when doing
mysqladmin debug. This works only on
systems that support the mallinfo() call
(like newer Linux systems).
Added the following new system variables to allow more precise
memory allocation:
range_alloc_block_size,
query_alloc_block_size,
query_prealloc_size,
transaction_alloc_block_size,
and
transaction_prealloc_size.
mysqlbinlog now reads option files. To make
this work, you must now specify
--read-from-remote-server
when reading binary logs from a MySQL server. (Note that using
a remote server is deprecated and may disappear in future
mysqlbinlog versions).
Block SIGPIPE signals also for nonthreaded
programs. The blocking is moved from
mysql_init() to
mysql_server_init(), which is
automatically called on the first call to
mysql_init().
Added --libs_r and
--include options to
mysql_config.
New `> prompt for
mysql. This prompt is similar to the
'> and "> prompts,
but indicates that an identifier quoted with backticks was
begun on an earlier line and the closing backtick has not yet
been seen.
Updated mysql_install_db to be able to use
the local machine's IP address instead of the host name when
building the initial grant tables if
skip-name-resolve has been specified. This
option can be helpful on FreeBSD to avoid thread-safety
problems with the FreeBSD resolver libraries. (Thanks to
Jeremy Zawodny for the patch.)
A documentation change: Added a note that when backing up a
slave, it is necessary also to back up the
master.info and
relay-log.info files, as well as any
SQL_LOAD-* files located in the directory
specified by the
--slave-load-tmpdir option. All
these files are needed when the slave resumes replication
after you restore the slave's data.
Bugs fixed:
Fixed a spurious error ERROR 14: Can't change size of
file (Errcode: 2) on Windows in DELETE FROM
without a
tbl_nameWHERE clause or TRUNCATE TABLE
, when
tbl_nametbl_name is a
MyISAM table. (Bug#1397)
Fixed a bug that resulted in thr_alarm queue is
full warnings after increasing the
max_connections variable with
SET
GLOBAL. (Bug#1435)
Made LOCK TABLES to work when
Lock_tables_priv is granted on the database
level and Select_priv is granted on the
table level.
Fixed crash of FLUSH
QUERY CACHE on queries that use same table several
times (Bug#988).
Fixed core dump bug when setting an enum system variable (such
as sql_warnings) to
NULL.
Extended the default timeout value for Windows clients from 30
seconds to 1 year. (The timeout that was added in MySQL 4.0.15
was way too short). This fixes a bug that caused
ERROR 2013: Lost connection to MySQL server during
query for queries that lasted longer than 30
seconds, if the client didn't specify a limit with
mysql_options(). Users of
4.0.15 on Windows should upgrade to avoid this problem.
More “out of memory” checking in range optimizer.
Fixed and documented a problem when setting and using a user
variable within the same SELECT
statement. (Bug#1194).
Fixed bug in overrun check for
BLOB values with compressed
tables. This was a bug introduced in 4.0.14. It caused MySQL
to regard some correct tables containing
BLOB values as corrupted.
(Bug#770, Bug#1304, and maybe Bug#1295)
SHOW GRANTS showed
USAGE instead of the real
column-level privileges when no table-level privileges were
given.
When copying a database from the master, LOAD DATA
FROM MASTER dropped the corresponding database on
the slave, thus erroneously dropping tables that had no
counterpart on the master and tables that may have been
excluded from replication using
--replicate-*-table rules. Now LOAD
DATA FROM MASTER no longer drops the database.
Instead, it drops only the tables that have a counterpart on
the master and that match the
--replicate-*-table rules.
--replicate-*-db rules can still be used to
include or exclude a database as a whole from LOAD
DATA FROM MASTER. A database also is included or
excluded as a whole if there are some rules like
--replicate-wild-do-table=db1.%
or
--replicate-wild-ignore-table=db1.%,
as is the case for CREATE
DATABASE and DROP
DATABASE in replication. (Bug#1248)
Fixed a bug where mysqlbinlog crashed with
a segmentation fault when used with the -h or
--host option. (Bug#1258)
Fixed a bug where mysqlbinlog crashed with
a segmentation fault when used on a binary log containing only
final events for LOAD DATA.
(Bug#1340)
mysqlbinlog does not reuse temporary file
names from previous runs. Previously
mysqlbinlog failed if was used several
times on the same binary log file that contained a
LOAD DATA command.
Fixed compilation problem when compiling with OpenSSL 0.9.7
with disabled old DES support (If
OPENSSL_DISABLE_OLD_DES_SUPPORT option was
enabled).
Fixed a bug when two (or more) MySQL servers were running on
the same machine, and they were both slaves, and at least one
of them was replicating some
LOAD DATA
INFILE command from its master. The bug was that one
slave MySQL server sometimes deleted the
SQL_LOAD-* files (used for replication of
LOAD DATA
INFILE and located in the
slave-load-tmpdir directory, which defaults
to tmpdir) belonging to the
other slave MySQL server of this machine, if these slaves had
the same slave-load-tmpdir directory. When
that happened, the other slave could not replicate
LOAD DATA
INFILE and complained about not being able to open
some SQL_LOAD-* file. (Bug#1357)
If LOAD DATA
INFILE failed for a small file, the master forgot to
write a marker (a Delete_file event) in its
binary log, so the slave could not delete 2 files
(SQL_LOAD-*.info and
SQL_LOAD-*.data from its
tmpdir. (Bug#1391)
On Windows, the slave forgot to delete a
SQL_LOAD-*.info file from
tmpdir after successfully
replicating a LOAD
DATA INFILE command. (Bug#1392)
When a connection terminates, MySQL writes DROP
TEMPORARY TABLE statements to the binary log for all
temporary tables which the connection had not explicitly
dropped. MySQL forgot to use backticks to quote the database
and table names in the statement. (Bug#1345)
On some 64-bit machines (some HP-UX and Solaris machines), a slave installed with the 64-bit MySQL binary could not connect to its master (it connected to itself instead). (Bug#1256, Bug#1381)
Code was introduced in MySQL 4.0.15 for the slave to detect that the master had died while writing a transaction to its binary log. This code reported an error in a legal situation: When the slave I/O thread was stopped while copying a transaction to the relay log, the slave SQL thread would later pretend that it found an unfinished transaction. (Bug#1475)

User Comments
Add your own comment.