Functionality added or changed:
Incompatible Change: MySQL Cluster:
MySQL Cluster node and system restarts formerly required that
all fragments use the same local checkpoint (LCP); beginning
with this version, it is now possible for different fragments to
use different LCPs during restarts. This means that data node
file systems must be rebuilt as part of any upgrade to this
version by restarting all data nodes with the
See MySQL Cluster 4.1 Upgrade and Downgrade Compatibility, and related sections of the Manual before upgrading a MySQL Cluster to version 5.1.12 or later. (Bug#21478, Bug#21271)
EVENT_DEFINITION column now
contains the SQL executed by a scheduled event.
EVENT_BODY column now contains the
language used for the statement or statements shown in
EVENT_DEFINITION. In MySQL 5.1, the value
EVENT_BODY is always
These changes were made to bring this table into line with the
and that table's
ON * previously granted and revoked
privileges for the default database if there was a default
database and global privileges if there was none. Now
ON * requires a default database and produces
an error if there is none.
Support for the BerkeleyDB (
BDB) engine has
been dropped from this release. Any existing tables that are in
BDB format will not be readable from within MySQL from 5.1.12 or
newer. You should convert your tables to another storage engine
before upgrading to 5.1.12.
Because of this change, the
SHOW [BDB] LOGS
statement has been dropped.
Incompatible Change: A number of MySQL constructs are now prohibited in partitioning expressions, beginning with this release. These include the following:
A number of MySQL functions. For a complete list of these, see Partitioning Limitations Relating to Functions.
The bit operators
Nested function calls.
Calls to stored routines, UDFs, or plugins.
Character-to-integer conversions involving non-8-bit
character sets or any of the
These restrictions were added in part as a result of Bug#18198 and related bug reports.
For more information about these and other restrictions on partitioned tables in MySQL, see Restrictions and Limitations on Partitioning.
The permitted values for and behavior of the
event_scheduler system variable
have changed. Permitted values are now
OFF being the default. It is not possible to
change its value to or from
the server is running.
For details, see Event Scheduler Overview.
The plugin interface has changed: The
st_mysql_plugin structure has a new
license member to indicate the
license type. (The allowable values are defined in
mysql/plugin.h.) This change is not
backward compatible, so the API version
MYSQL_PLUGIN_INTERFACE_VERSION) has changed.
For additional information, see
Incompatible Change: The full-text parser plugin interface has changed in two ways:
MYSQL_FTPARSER_PARAM structure has a
flags member. This is zero if there
are no special flags, or
MYSQL_FTFLAGS_NEED_COPY, which means that
mysql_add_word() must save a copy of
the word (that is, it cannot use a pointer to the word
because the word is in a buffer that will be overwritten.)
This flag might be set or reset by MySQL before calling the
parser plugin, by the parser plugin itself, or by the
mysql_add_word() functions now take a
MYSQL_FTPARSER_PARAM as their first
argument, not a
These changes are not backward compatible, so the API version
changed. For additional information, see
Storage engines can be pluggable at runtime, so the distinction
between disabled and invalid storage engines no longer applies.
This affects the
mode, as described in Server SQL Modes.
The namespace for scheduled events has changed, such that events
are no longer unique to individual users. This also means that a
user with the
EVENT privilege on
a given database can now view, alter, or drop any events defined
on that database.
If you used scheduled events in an earlier MySQL 5.1 release, you should rename any of them having the same name and defined on the same database but belonging to different users — so that all events in a given database have unique names — before upgrading to 5.1.12 (or newer).
For additional information, see The Event Scheduler and MySQL Privileges.
A stored routine created by one user and then made accessible to
a different user using
could be executed by that user with the privileges of the
Security Fix: On Linux, and possibly other platforms using case-sensitive file systems, it was possible for a user granted rights on a database to create or access a database whose name differed only from that of the first by the case of one or more letters. (Bug#17647, CVE-2006-4226)
If a user has access to
t, that user can create a
t. However, if the user's
t are subsequently
revoked, the user can continue to access
t by doing so through
m. If this behavior is undesirable,
you can start the server with the new
--skip-merge option to disable
MERGE storage engine.
utf8 columns, the full-text parser
incorrectly considered several nonword punctuation and
whitespace characters as word characters, causing some searches
to return incorrect results.
The fix involves a change to the full-text parser, so any tables
FULLTEXT indexes on
utf8 columns must be repaired with