オリジナル版:http://dev.mysql.com/doc/refman/5.1/en/news-5-1-48.html
最も普及しているオープンソースデータベース管理システムの新バージョンMySQL Community Server 5.1.48がリリースされました。MySQL 5.1.48は、プロダクションシステムでの使用をお勧めします。
MySQL 5.1の新機能の概要については、以下を参照してください。
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
新たなサーバにMySQL 5.1.48をインストール、または以前のMySQLリリースからMySQL 5.1.48にアップグレードする際の情報については、以下を参照してください。
http://dev.mysql.com/doc/refman/5.1/en/installing.html
下記のダウンロードページから、MySQLサーバのソースコード及び多数のプラットフォーム用バイナリが入手可能です
http://dev.mysql.com/downloads/
現時点ですべてのミラーサイトが最新であるとは限らないことに注意してください。
あるミラーサイトで本バージョンを見つけることができない場合は、後日再確認を行うか、別のダウンロード・サイトを選択してください。
フィードバック、バグレポート、バグ修正、パッチ等の情報をお待ちしておりますので、以下のページをご利用ください。
http://forge.mysql.com/wiki/Contributing
MySQL 5.1に関するオープンな問題の情報については、以下のエラッタリストを参照してください。
http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html
以下のセクションは、MySQL5.1の前リリース以降のMySQLソースコードの変更を記載しています。これはオンラインでも閲覧可能です:
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-48.html
以下は、追加または変更された機能です。
* The Rows_examined value in slow query log rows now is nonzero
for UPDATE and DELETE statements that modify rows.
(Bug#49756: http://bugs.mysql.com/bug.php?id=49756)
Bugs fixed:
* Important Change: Replication: MyISAM transactions replicated
to a transactional slave left the slave in an unstable
condition. This was due to the fact that, when replicating
from a nontransactional storage engine to a transactional
engine with autocommit turned off, no BEGIN and COMMIT
statements were written to the binary log; thus, on the slave,
a never-ending transaction was started.
The fix for this issue includes enforcing autocommit mode on
the slave by replicating all autocommit=1 statements from the
master. (Bug#29288: http://bugs.mysql.com/bug.php?id=29288)
* Partitioning: ALTER TABLE statements that cause table
partitions to be renamed or dropped (such as ALTER TABLE ...
ADD PARTITION, ALTER TABLE ... DROP PARTITION, and ALTER TABLE
... REORGANIZE PARTITION) --- when run concurrently with
queries against the INFORMATION_SCHEMA.PARTITIONS table ---
could fail, cause the affected partitioned tables to become
unusable, or both. This was due to the fact that the
INFORMATION_SCHEMA database ignored the name lock imposed by
the ALTER TABLE statement on the partitions affected. In
particular, this led to problems with InnoDB tables, because
InnoDB would accept the rename operation, but put it in a
background queue, so that subsequent rename operations failed
when InnoDB was unable to find the correct partition. Now,
INFORMATION_SCHEMA honors name locks imposed by ongoing ALTER
TABLE statements that cause partitions to be renamed or
dropped. (Bug#50561: http://bugs.mysql.com/bug.php?id=50561)
See also Bug#47343: http://bugs.mysql.com/bug.php?id=47343,
Bug#45808: http://bugs.mysql.com/bug.php?id=45808.
* Partitioning: It was possible to execute a CREATE TEMPORARY
TABLE tmp LIKE pt statement, where pt is a partitioned table,
even though partitioned temporary tables are not permitted,
which caused the server to crash. Now a check is performed to
prevent such statements from being executed.
(Bug#49477: http://bugs.mysql.com/bug.php?id=49477)
* Partitioning: When attempting to perform DDL on a partitioned
table and the table's .par file could not be found, the server
returned the inaccurate error message Out of memory; restart
server and try again (needed 2 bytes). Now in such cases, the
server returns the error Failed to initialize partitions from
.par file. (Bug#49161: http://bugs.mysql.com/bug.php?id=49161)
* Replication: In some cases, attempting to update a column with
a value of an incompatible type resulted in a mismatch between
master and slave because the column value was set to its
implicit default value on the master (as expected), but the
same column on the slave was set to NULL.
(Bug#52868: http://bugs.mysql.com/bug.php?id=52868)
* Replication: When using a non-transactional table on the
master with autocommit disabled, no COMMIT was recorded in the
binary log following a statement affecting this table. If the
slave's copy of the table used a transactional storage engine,
the result on the slave was as though a transaction had been
started, but never completed.
(Bug#49522: http://bugs.mysql.com/bug.php?id=49522)
See also Bug#29288: http://bugs.mysql.com/bug.php?id=29288.
* Replication: Reading from a table that used a self-logging
storage engine and updating a table that used a transactional
engine (such as InnoDB) generated changes that were written to
the binary log using statement format which could make slaves
diverge. However, when using mixed logging format, such
changes should be written to the binary log using row format.
(This issue did not occur when reading from tables using a
self-logging engine and updating MyISAM tables, as this was
already handled by checking for combinations of
non-transactional and transactional engines.) Now such
statements are classified as unsafe, and in mixed mode, cause
a switch to row-based logging.
(Bug#49019: http://bugs.mysql.com/bug.php?id=49019)
* Valgrind warnings resulting from passing incomplete DATETIME
values to the TIMESTAMP() function were corrected.
(Bug#53942: http://bugs.mysql.com/bug.php?id=53942)
* Builds of the embedded mysqld would fail due to a missing
element of the struct NET.
(Bug#53908: http://bugs.mysql.com/bug.php?id=53908,
Bug#53912: http://bugs.mysql.com/bug.php?id=53912)
* UPDATE on an InnoDB table modifying the same index that was
used to satisfy the WHERE condition could trigger a debug
assertion under some circumstances.
(Bug#53830: http://bugs.mysql.com/bug.php?id=53830)
* For single-table DELETE statements that used quick select and
index scan simultaneously caused a server crash or assertion
failure. (Bug#53450: http://bugs.mysql.com/bug.php?id=53450)
* Incorrect results could be returned for LEFT JOIN of InnoDB
tables with an impossible WHERE condition.
(Bug#53334: http://bugs.mysql.com/bug.php?id=53334)
* Fixed a checksum error reported for compressed tables when the
--innodb_checksums option is enabled.
(Bug#53248: http://bugs.mysql.com/bug.php?id=53248)
* Corrected the handling of the setting
innodb_change_buffering=default. (The appropriate default
value is different between MySQL 5.1 and 5.5.)
(Bug#53165: http://bugs.mysql.com/bug.php?id=53165)
* mysqldump and SELECT ... INTO OUTFILE truncated long BLOB and
TEXT values to 766 bytes.
(Bug#53088: http://bugs.mysql.com/bug.php?id=53088)
* In the debug version of the server, the FreeState() function
could in some circumstances be called twice, leading to an
assertion failure.
(Bug#52884: http://bugs.mysql.com/bug.php?id=52884)
* Aggregate functions could incorrectly return NULL in outer
join queries.
(Bug#52051: http://bugs.mysql.com/bug.php?id=52051)
* The Loose Index Scan optimization method assumed that it could
depend on the partitioning engine to maintain interval
endpoint information, as if it were a storage engine.
(Bug#50939: http://bugs.mysql.com/bug.php?id=50939)
* Calculation of intervals for Event Scheduler events was not
portable. (Bug#50087: http://bugs.mysql.com/bug.php?id=50087)
* Selecting from INFORMATION_SCHEMA.ROUTINES or
INFORMATION_SCHEMA.PARAMETERS
(http://dev.mysql.com/doc/refman/5.5/en/parameters-table.html)
resulted in a memory leak.
(Bug#48729: http://bugs.mysql.com/bug.php?id=48729)
* When the transaction isolation level was REPEATABLE READ and
binary logging used statement or mixed format, SELECT
statements with subqueries referencing InnoDB tables
unnecessarily acquired shared locks on rows in these tables.
(Bug#46947: http://bugs.mysql.com/bug.php?id=46947)
* Using an initial command with mysql_options(...,
MYSQL_INIT_COMMAND, ...) that generated multiple result sets
(such as a stored procedure or a multi-statement command) left
the connection unusable.
(Bug#42373: http://bugs.mysql.com/bug.php?id=42373)
* If a crash occurs while creating an index using the InnoDB
"Fast Index Creation" mechanism, the partially created index
is dropped during the crash recovery processing when the
database is restarted.