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_name
WHERE
clause or TRUNCATE TABLE
, when
tbl_name
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)
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.