Fonctionnalité ajoutée ou modifiée :
For replication of MEMORY
(HEAP
) tables: Made the master
automatically write a DELETE FROM
statement to its binary log when a MEMORY
table is opened for the first time since master's startup.
This is for the case where the slave has replicated a
non-empty MEMORY
table, then the master
is shut down and restarted: the table is now empty on
master; the DELETE FROM
empties it on
slave too. Note that even with this fix, between the
master's restart and the first use of the table on master,
the slave still has out-of-date data in the table. But if
you use the --init-file
option to populate
the MEMORY
table on the master at
startup, it ensures that the failing time interval is zero.
(Bug#2477)
When a session having open temporary tables terminates, the
statement automatically written to the binary log is now
DROP TEMPORARY TABLE IF EXISTS
instead of
DROP TEMPORARY TABLE
, for more
robustness.
The MySQL server now returns an error if SET
SQL_LOG_BIN
is issued by a user without the
SUPER
privilege (in previous versions it
just silently ignored the statement in this case).
Changed that when the MySQL server has binary logging
disabled (that is, no log-bin
option was
used) then no transaction binlog cache is allocated for
connections (this should save
binlog_cache_size
bytes of memory (32
kilobytes by default) for every connection).
Added option --replicate-same-server-id
.
Bogues corrigés :
Strange results with index (x, y) ... WHERE x=val_1 AND y>=val_2 ORDER BY pk; (Bug#3155)
Subquery and order by (Bug#3118)
ALTER DATABASE
caused the client to hang
if the database did not exist. (Bug#2333)
SLAVE START
(which is a deprecated
syntax, START SLAVE
should be used
instead) could crash the slave. (Bug#2516)
Multiple-table DELETE
statements were
never replicated by the slave if there were any
replicate-*-table
options. (Bug#2527)
The MySQL server did not report any error if the query
(submitted through mysql_real_query()
or
mysql_prepare()
) was terminated by
garbage characters (which can happen if you pass a wrong
length
parameter to
mysql_real_query()
or
mysql_prepare()
); the result was that the
garbage characters were written into the binary log. (Bug#2703)
Replication: If a client connects to a slave server and
issues an administrative statement for a table (for example,
OPTIMIZE TABLE
or REPAIR
TABLE
), this could sometimes stop the slave SQL
thread. This does not lead to any corruption, but you must
use START SLAVE
to get replication going
again. (Bug#1858)
Made clearer the error message which one gets when an update
is refused because of the read-only
option. (Bug#2757)
Fixed that replicate-wild-*-table
rules
apply to ALTER DATABASE
when the table
pattern is '%', like it is already the case for
CREATE DATABASE
and DROP
DATABASE
. (Bug#3000)
Fixed that when a Rotate
event is found
by the slave SQL thread in the middle of a transaction, the
value of Relay_Log_Pos
in SHOW
SLAVE STATUS
remains correct. (Bug#3017)
Corrected the master's binary log position that
InnoDB
reports when it is doing a crash
recovery on a slave server. (Bug#3015)
Changed the column Seconds_Behind_Master
in SHOW SLAVE STATUS
to never show a
value of -1. (Bug#2826)
Changed that when a DROP TEMPORARY TABLE
statement is automatically written to the binlog when a
session ends, the statement is recorded with an error code
of value zero (this ensures that killing a
SELECT
on the master does not result in a
superfluous error on the slave). (Bug#3063)
Changed that when a thread handling INSERT
DELAYED
(also known as a
delayed_insert
thread) is killed, its
statements are recorded with an error code of value zero
(killing such a thread does not endanger replication, so we
thus avoid a superfluous error on the slave). (Bug#3081)
Fixed deadlock when two START SLAVE
commands were run at the same time. (Bug#2921)
Fixed that a statement never triggers a superfluous error on
the slave, if it must be excluded given the
replicate-*
options. The bug was that if
the statement had been killed on the master, the slave would
stop. (Bug#2983)
The --local-load
option of
mysqlbinlog
now requires an argument.
Fixed a segmentation fault when running LOAD DATA
FROM MASTER
after RESET SLAVE
.
(Bug#2922)
mysqlbinlog --read-from-remote-server
read all binary logs following the one that was requested.
It now stops at the end of the requested file, the same was
it does when reading a local binary log. (Bug#3204)
Fixed mysqlbinlog
--read-from-remote-server
to print the exact
positions of events in the "at #" lines. (Bug#3214)
Fixed a rare error condition that caused the slave SQL
thread spuriously to print the message Binlog has
bad magic number
and stop when it was not
necessary to do so. (Bug#3401)
Fixed mysqlbinlog
not to forget to print
a USE
statement under rare circumstances
where the binary log contained a LOAD DATA
INFILE
statement. (Bug#3415)
Fixed a memory corruption when replicating a LOAD
DATA INFILE
when the master had version 3.23. (Bug#3422)
Multiple-table DELETE
statements were
always replicated by the slave if there were some
replicate-*-ignore-table
options and no
replicate-*-do-table
options. (Bug#3461)
Fixed a crash of the MySQL slave server when it was built
with --with-debug
and replicating itself.
(Bug#3568)
Fixed that in some replication error messages, a very long query caused the rest of the message to be invisible (truncated), by putting the query last in the message. (Bug#3357)
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.