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:
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).
SIGPIPE signals also for nonthreaded programs. The blocking is moved from
mysql_server_init(), which is automatically called on the first call to
--include options to mysql_config.
`> prompt for mysql. This prompt is similar to the
"> 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
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.
Fixed a spurious error
ERROR 14: Can't change size of file (Errcode: 2) on Windows in
DELETE FROM without a
WHERE clause or
TRUNCATE TABLE , when
tbl_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)
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
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-*-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-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
--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 statement.
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 statement 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)
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-*.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 statement. (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)