MySQL Community Server 5.1.42がリリースされました


最も普及しているオープンソースデータベース管理システムの新バージョンであるMySQL Community Server 5.1.42がリリースされました。MySQL 5.1.42は、プロダクションシステムでの使用をお勧めします。

MySQL 5.1の新機能の概要については、以下を参照してください。

新たなサーバにMySQL 5.1.42をインストール、または以前のMySQLリリースからMySQL 5.1.42にアップグレードする際の情報については、以下を参照してください。




MySQL 5.1に関するオープンな問題の情報については、以下のエラッタリストを参照してください。




Changes in MySQL 5.1.42

Release availability:

* MySQL Server 5.1 is available on the following new
platforms starting with the 5.1.42 release:

+ Mac OS X 10.6 x86/x64
+ HP-UX 11.31 IA64
+ SLES 11 x86/x64

Important Change:

Replication: The following functions
have been marked unsafe for statement-based replication:


None of the functions just listed are guaranteed to
replicate correctly when using the statement-based
format, because they can produce different results on the
master and the slave. The use of any of these functions
while binlog_format is set to STATEMENT is logged with
the warning, Statement is not safe to log in statement
format. When binlog_format is set to MIXED, the binary
logging format is automatically switched to the row-based
format whenever one of these functions is used.

InnoDB Plugin Notes:

* InnoDB Plugin has been upgraded to version 1.0.6. This
version is considered of Release Candidate (RC) quality.
The InnoDB Plugin Change History
may contain information in addition to those changes
reported here.

Bugs fixed:

* Performance: When the query cache is fragmented, the size of
the free block lists in the memory bins grows, which causes
query cache invalidation to become slow. There is now a 50ms
timeout for a SELECT statement waiting for the query cache
lock. If the timeout expires, the statement executes without
using the query cache.

* Partitioning: In some cases, it was not possible to add a new
column to a table that had subpartitions.

* Partitioning: SELECT COUNT(*) from a partitioned table failed
when using the ONLY_FULL_GROUP_BY SQL mode.
This regression was introduced by

* Partitioning: SUBPARTITION BY KEY failed with DEFAULT

* Replication: When using row-based logging, TRUNCATE TABLE was
written to the binary log even if the affected table was
temporary, causing replication to fail.

* Replication: Replicating TEXT or VARCHAR columns declared as
NULL on the master but NOT NULL on the slave caused the slave
to crash. (Bug#43789:
See also Bug#38850:,

* InnoDB did not reset table AUTO_INCREMENT values to the last
used values after a server restart.

* Privileges for stored routines were ignored for mixed-case
routine names.
See also Bug#41049:

* Building MySQL on Fedora Core 12 64-bit would due to errors in
comp_err. (Bug#48864:

* Concurrent ALTER TABLE operations on an InnoDB table could
raise an assertion.

* During query execution, ranges could be merged incorrectly for
OR operations and return an incorrect result.

* The InnoDB Table Monitor reported the FLOAT and DOUBLE data
types incorrectly.

* With row-based binary logging, the server crashed for
statements of the form CREATE TABLE IF NOT EXISTS
existing_view LIKE temporary_table. This occurred because the
server handled the existing view as a table when logging the
statement. (Bug#48506:

* DISTINCT was ignored for queries with GROUP BY WITH ROLLUP and
only const tables.

* Loose index scan was inappropriately chosen for some WHERE

* A bad typecast could cause query execution to allocate large
amounts of memory.

* On Windows, InnoDB could not be built as a statically linked
library. (Bug#48317:

* When running mysql_secure_installation, the command would fail
if the root password contained multiple spaces, \, # or quote

* MATCH IN BOOLEAN MODE searches could return too many results
inside a subquery.

* Connecting to a 4.1.x server from a 5.1.x or higher mysql
client resulted in a memory-free error when disconnecting.

* Assignment of a system variable sharing the same base name as
a declared stored program variable in the same context could
lead to a crash.

* The innodb_file_format_check system variable could not be set
at runtime to DEFAULT or to the value of a user-defined
variable. (Bug#47167:

* Valgrind errors for InnoDB Plugin were corrected.

* On 64-bit systems, --skip-innodb did not skip InnoDB startup.

* Truncation of DECIMAL values could lead to assertion failures;
for example, when deducing the type of a table column from a
literal DECIMAL value.
See also Bug#48370:

* For YEAR(2) values, MIN(), MAX(), and comparisons could yield
incorrect results.

* The server could crash when attempting to access a
non-conformant mysql.proc system table. For example, the
server could crash when invoking stored procedure-related
statements after an upgrade from MySQL 5.0 to 5.1 without
running mysql_upgrade.

* When running mysql_secure_installation on Windows, the command
would fail to load a required module, Term::ReadKey, which was
required for correct operation.

* If the --log-bin server option was set to a directory name
with a trailing component separator character, the basename of
the binary log files was empty so that the created files were
named .000001 and .index. The same thing occurred with the
--log-bin-index, --relay-log, and --relay-log-index options.
Now the server reports and error and exits.

* On some Windows systems, InnoDB could report Operating system
error number 995 in a file operation due to transient driver
or hardware problems. InnoDB now retries the operation and
adds Retry attempt is made to the error message.

* Replication: When using row-based format, replication
failed with the error Could not execute Write_rows event
on table ...; Field '...' doesn't have a default value
when an INSERT was made on the master without specifying
a value for a column having no default, even if strict
server SQL mode was not in use and the statement would
otherwise have succeeded on the master. Now the SQL mode
is checked, and the statement is replicated unless strict
mode is in effect. For more information, see Section
5.1.8, "Server SQL Modes."
See also

* The result of comparison between nullable BIGINT and INT
columns was inconsistent.

* Incorrect cache initialization prevented storage of
converted constant values and could produce incorrect
comparison results.

* Comparisons involving YEAR values could produce incorrect
See also

* If a query involving a table was terminated with KILL, a
subsequent SHOW CREATE TABLE for that table caused a
server crash.

* If the InnoDB tablespace was configured with too small a
value, the server could crash and corrupt the tablespace.

* Parts of the range optimizer could be initialized
incorrectly, resulting in Valgrind errors.

* On Windows, InnoDB could not be built as a statically
linked library.

* mysql_secure_installation did not work on Solaris.

* Using REPLACE to update a previously inserted negative
value in an AUTO_INCREMENT coumn in an InnoDB table
caused the table auto-increment value to be updated to

* If a session held a global read lock acquired with FLUSH
TABLES WITH READ LOCK, a lock for one table acquired with
LOCK TABLES, and issued an INSERT DELAYED statement for
another table, deadlock could occur.

* The mysql client status command displayed an incorrect
value for the server character set.

* After a binary upgrade to MySQL 5.1 from a MySQL 5.0
installation that contains ARCHIVE tables, accessing
those tables caused the server to crash, even if you had
run mysql_upgrade or CHECK TABLE ... FOR UPGRADE.
To work around this problem, use mysqldump to dump all
ARCHIVE tables before upgrading, and reload them into
MySQL 5.1 after upgrading. The same problem occurs for
binary downgrades from MySQL 5.1 to 5.0.

* The IGNORE clause on a DELETE statement masked an SQL
statement error that occurred during trigger processing.

* The return value was not checked for some
my_hash_insert() calls.

* Use of InnoDB monitoring (SHOW ENGINE INNODB STATUS or
one of the InnoDB Monitor tables) could cause a server
crash due to invalid access to a shared variable in a
concurrent environment. This is a further fix for a
regression introduced in MySQL 5.1.38 to the original fix
in MySQL 5.1.31.

* If a comparison involved a constant value that required
type conversion, the converted value might not be cached,
resulting in repeated conversion and poorer performance.

* Using the SHOW ENGINE INNODB STATUS statement when using
partitions in InnoDB tables caused Invalid (old?) table
or database name errors to be logged.

* The Mac OS X 10.6 MySQL preference panel now contains
x86 64-bit binaries.