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_SCHEMA
“information database” that provides database
metadata. See Capítulo 22, La base de datos de información INFORMATION_SCHEMA
.
A HAVING
clause in a
SELECT
statement now can refer to columns
in the GROUP BY
clause, as required by
standard SQL.
Added the CREATE USER
and RENAME
USER
statements.
Modify 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
privileges revoked.
Added IS [NOT]
syntax,
where boolean_value
boolean_value
is
TRUE
, FALSE
, or
UNKNOWN
.
Added several InnoDB
status variables. See
Sección 5.3.4, “Variables de estado del servidor”.
Implemented the WITH CHECK OPTION
clause
for CREATE VIEW
.
CHECK TABLE
now works for views.
The SCHEMA
and SCHEMAS
keywords are now accepted as synonyms for
DATABASE
and DATABASES
.
Added initial support for rudimentary triggers (the
CREATE TRIGGER
and DROP
TRIGGER
statements).
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”.
Added --start-datetime
,
--stop-datetime
,
--start-position
,
--stop-position
options to
mysqlbinlog (makes point-in-time recovery
easier).
Made the MySQL server not react to signals
SIGHUP
and SIGQUIT
on
Mac OS X 10.3. This is needed because under this OS, the MySQL
server receives lots of these signals (reported as Bug#2030).
New --auto-increment-increment
and
--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.
Added STRICT_TRANS_TABLES
,
STRICT_ALL_TABLES
,
NO_ZERO_IN_DATE
,
NO_ZERO_DATE
,
ERROR_FOR_DIVISION_BY_ZERO
, and
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
STRICT_TRANS_TABLES
/STRICT_ALL_TABLES
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
you do 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
STRICT_TRANS_TABLES
.
Added NO_AUTO_CREATE_USER
SQL mode to
prevent GRANT
from automatically creating
new users if it would otherwise do so, unless a password also
is specified.
We now detect too-large floating point numbers during statement parsing and generate an error messages for them.
Renamed the sql_updatable_view_key
system
variable to updatable_views_with_limit
.
This variable now can have only two values:
1
or YES
: Don't
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.)
0
or NO
: Prohibit
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
tools).
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 CREATE
privilege.
InnoDB: If you specify the option
innodb_locks_unsafe_for_binlog
in
my.cnf
, InnoDB in an
UPDATE
or a DELETE
only
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
the State
column of SHOW
PROCESSLIST
.
mysqlbinlog now prints an informative
commented line (thread id, timestamp, server id, etc) before
each LOAD DATA INFILE
, like it does for
other queries; unless --short-form
is used.
Two new server system variables were introduced.
auto_increment_increment
and
auto_increment_offset
can be set locally or
globally, and are intended for use in controlling the
behaviour of 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”.
Bugs fixed:
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)
Fixed that CREATE TABLE ... TYPE=HEAP ... AS
SELECT...
caused replication slave to stop. (Bug#4971)
Fixed that
mysql_options(...,MYSQL_OPT_LOCAL_INFILE,...)
failed to disable LOAD DATA LOCAL INFILE
.
(Bug#5038)
Fixed that disable-local-infile
option had
no effect if client read it from a configuration file using
mysql_options(...,MYSQL_READ_DEFAULT,...)
.
(Bug#5073)
Fixed that 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#5050)
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
KILL
ed while it was doing START
SLAVE
. (Bug#4827)
Made 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.
(Bug#4953)
Fixed that the counter of an auto_increment
column was not reset by TRUNCATE TABLE
is
the table was a temporary one. (Bug#5033)
Fixed slave SQL thread so that the SET
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 COMMIT
, would
cause replication slaves to stop (complaining about error
1223). Bug surfaced when using the InnoDB
innobackup
script. (Bug#5949)
OPTIMIZE TABLE
, REPAIR
TABLE
, and ANALYZE TABLE
are now
replicated without any error code in the binary log. (Bug#5551)
If a connection had an open transaction but had done no
updates to transactional tables (for example if had just done
a SELECT FOR UPDATE
then executed a
non-transactional update, that update automatically committed
the transaction (thus releasing InnoDB's row-level locks etc).
(Bug#5714)
If a connection was interrupted by a network error and did a
rollback, the network error code got stored into the
BEGIN
and ROLLBACK
binary log events; that caused superfluous slave stops. (Bug#6522)
Fixed a bug which prevented mysqlbinlog
from being able to read from stdin
, for
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 mysql-es@vespito.com.