Functionality added or changed:
Warning: Incompatible change!
The precedence of
NOT operator has changed
so that expressions such as
NOT a BETWEEN b AND
c are parsed correctly as
NOT (a BETWEEN b
AND c) rather than as
(NOT a) BETWEEN b AND
c. The pre-5.0 higher-precedence behavior can be
obtained by enabling the new
HIGH_NOT_PRECEDENCE SQL mode.
SHOW STATUS now shows the thread specific
status variables and
SHOW GLOBAL STATUS
shows the status variables for the whole server.
Added support for the
“information database” that provides database
metadata. See Capítulo 22, La base de datos de información
HAVING clause in a
SELECT statement now can refer to columns
GROUP BY clause, as required by
CREATE USER and
DROP USER so that it drops the
account, including all its privileges. Formerly, it removed
the account record only for an account that had had all
InnoDB status variables. See
Sección 5.3.4, “Variables de estado del servidor”.
WITH CHECK OPTION clause
CHECK TABLE now works for views.
keywords are now accepted as synonyms for
Added initial support for rudimentary triggers (the
CREATE TRIGGER and
Added basic support for read-only server side cursors.
mysqldump --single-transaction --master-data is now able to take an online (non-blocking) dump of InnoDB and report the corresponding binary log coordinates, which makes a backup suitable for point-in-time recovery, roll-forward or replication slave creation. See Sección 8.7, “El programa de copia de seguridad de base de datos mysqldump”.
--stop-position options to
mysqlbinlog (makes point-in-time recovery
Made the MySQL server not react to signals
Mac OS X 10.3. This is needed because under this OS, the MySQL
server receives lots of these signals (reported as Bug #2030).
--auto-increment-offset startup options.
These allow you to set up a server to generate auto-increment
values that don't conflict with another server.
MySQL now by default checks dates and in strict mode allows
only fully correct dates. If you want MySQL to behave as
before, you should enable the new
ALLOW_INVALID_DATES SQL mode.
TRADITIONAL SQL modes. The
TRADITIONAL mode is shorthand for all the
preceding modes. When using mode
TRADITIONAL, MySQL generates an error if
you try to insert a wrong value in a column. It does not
adjust the value to the closest possible legal value.
MySQL now remembers which columns were declared to have
default values. In
mode, you now get an error if you do an
INSERT without specifying all columns that
don't have a default value. A side effect of this is that when
SHOW CREATE for a new table, you no
longer see a
DEFAULT value for a column for
which you didn't specify a default value.
The compilation flag
DONT_USE_DEFAULT_FIELDS was removed because
you can get the same behavior by setting the
sql_mode system variable to
NO_AUTO_CREATE_USER SQL mode to
GRANT from automatically creating
new users if it would otherwise do so, unless a password also
We now detect too-large floating point numbers during statement parsing and generate an error messages for them.
This variable now can have only two values:
issue an error message (warning only) if a VIEW without
presence of a key in the underlying table is used in
queries with a
LIMIT clause for
updating. (This is the default value.)
update of a VIEW, which does not contain a key in the
underlying table and the query uses a
LIMIT clause (usually get from GUI
Reverted output format of
SHOW TABLES to
old pre-5.0.1 format that did not include a table type column.
To get the additional column that lists the table type, use
SHOW FULL TABLES now.
The mysql_fix_privilege_tables script now
initializes the global
CREATE VIEW and
SHOW VIEW privileges in the
user table to the value of the
CREATE privilege in that table.
If the server finds that the
user table has
not been upgraded to include the view-related privilege
columns, it treats each account as having view privileges that
are the same as its
InnoDB: If you specify the option
my.cnf, InnoDB in an
UPDATE or a
locks the rows that it updates or deletes. This greatly
reduces the probability of deadlocks.
A connection doing a rollback now displays "Rolling back" in
State column of
mysqlbinlog now prints an informative
commented line (thread id, timestamp, server id, etc) before
LOAD DATA INFILE, like it does for
other queries; unless
--short-form is used.
Two new server system variables were introduced.
auto_increment_offset can be set locally or
globally, and are intended for use in controlling the
AUTO_INCREMENT columns in
master-to-master replication. Note that these variables are
not intended to take the place of sequences. See
Sección 5.3.3, “Variables de sistema del servidor”.
Fixed that mysqlbinlog --read-from-remote-server sometimes couldn't accept two binary logfiles on the command line. (Bug #4507)
Fixed that mysqlbinlog --position
--read-from-remote-server had incorrect
at lines. (Bug #4506)
CREATE TABLE ... TYPE=HEAP ... AS
SELECT... caused replication slave to stop. (Bug
failed to disable
LOAD DATA LOCAL INFILE.
disable-local-infile option had
no effect if client read it from a configuration file using
SET GLOBAL SYNC_BINLOG did not
work on some platforms (Mac OS X). (Bug #5064)
Fixed that mysql-test-run failed on the
rpl_trunc_binlog test if running test from
the installed (the target of 'make install') directory. (Bug
Fixed that mysql-test-run failed on the
grant_cache test when run as Unix user
'root'. (Bug #4678)
Fixed an unlikely deadlock which could happen when using
KILL. (Bug #4810)
Fixed a crash when one connection got
KILLed while it was doing
SLAVE. (Bug #4827)
FLUSH TABLES WITH READ LOCK block
COMMIT if server is running with binary
logging; this ensures that the binary log position can be
trusted when doing a full backup of tables and the binary log.
Fixed that the counter of an
column was not reset by
TRUNCATE TABLE is
the table was a temporary one. (Bug #5033)
Fixed slave SQL thread so that the
COLLATION_SERVER... statements it replicates don't
advance its position (so that if it gets interrupted before
the actual update query, it later redoes the
SET). (Bug #5705)
Fixed that if the slave SQL thread found a syntax error in a query (which should be rare, as the master parsed it successfully), it stops. (Bug #5711)
Fixed that if a write to a MyISAM table fails because of a full disk or an exceeded disk quota, it prints a message to the error log every 10 minutes, and waits until disk becomes free. (Bug #3248)
Fixed problem introduced in 4.0.21 where a connection starting
a transaction, doing updates, then
FLUSH TABLES WITH
READ LOCK, then
cause replication slaves to stop (complaining about error
1223). Bug surfaced when using the InnoDB
innobackup script. (Bug #5949)
ANALYZE TABLE are now
replicated without any error code in the binary log. (Bug
If a connection had an open transaction but had done no
updates to transactional tables (for example if had just done
SELECT FOR UPDATE then executed a
non-transactional update, that update automatically committed
the transaction (thus releasing InnoDB's row-level locks etc).
If a connection was interrupted by a network error and did a
rollback, the network error code got stored into the
binary log events; that caused superfluous slave stops. (Bug
Fixed a bug which prevented mysqlbinlog
from being able to read from
example, when piping the output from zcat
to mysqlbinlog. (Bug #7853)
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a firstname.lastname@example.org.