オリジナル版:http://dev.mysql.com/doc/refman/5.1/en/news-5-1-37.html
最も普及しているオープンソースデータベース管理システムの新バージョンであるMySQL Community Server 5.1.37がリリースされました。MySQL 5.1.37は、プロダクションシステムでの使用をお勧めします。
MySQL 5.1の新機能の概要については、以下を参照してください。
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
新たなサーバにMySQL 5.1.37をインストール、または以前のMySQLリリースからMySQL 5.1.37にアップグレードする際の情報については、以下を参照してください。
http://dev.mysql.com/doc/refman/5.1/en/installing.html
MySQL 5.1.37は、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-37.html
以下は、追加または変更された機能です。
=======================================================================
Functionality added or changed:
* Important Change: Replication: RESET MASTER and RESET SLAVE
now reset the values shown for Last_IO_Error, Last_IO_Errno,
Last_SQL_Error, and Last_SQL_Errno in the output of SHOW SLAVE
STATUS. (Bug#44270:http://bugs.mysql.com/44270)
See alsoBug#34654:http://bugs.mysql.com/34654.
Bugs fixed:
* Security Fix: Partitioning: Accessing a table with user-defined
partitioning when the server SQL mode included ONLY_FULL_GROUP_BY
caused the MySQL server to crash. For example, the following
sequence of statements crashed the server:
DROP TABLE IF EXISTS t1;
SET SESSION SQL_MODE='ONLY_FULL_GROUP_BY';
CREATE TABLE t1(id INT, key(id))
PARTITION BY HASH(id) PARTITIONS 2;
(Bug#45807:http://bugs.mysql.com/45807)
* Important Change: Replication: When using STATEMENT or MIXED
binary logging format, a statement that changes both
non-transactional and transactional tables must be written to
the binary log whenever there are changes to non-transactional
tables. This means that the statement goes into the binary log
even when the changes to the transactional tables fail. In
particular, in the event of a failure such statement is
annotated with the error number and wrapped inside a pair of
BEGIN and ROLLBACK statements.
On the slave, while applying the statement, it is expected
that the same failure and the rollback prevent the
transactional changes from persisting. However, statements
that fail due to concurrency issues such as deadlocks and
timeouts are logged in the same way, causing the slave to stop
since the statements are applied sequentially by the SQL
thread.
To address this issue, we ignore concurrency failures on the
slave. Specifically, the following failures are now ignored:
ER_LOCK_WAIT_TIMEOUT, ER_LOCK_DEADLOCK, and ER_XA_RBDEADLOCK.
(Bug#44581:http://bugs.mysql.com/44581)
* Partitioning: Truncating a partitioned MyISAM table did not
reset the AUTO_INCREMENT value.
(Bug#35111:http://bugs.mysql.com/35111)
* Replication: The SHOW SLAVE STATUS connection thread competed
with the slave SQL thread for use of the error message buffer.
As a result, the connection thread sometimes received
incomplete messages. This issue was uncovered with valgrind
when message strings were passed without NULL terminators,
causing the error Conditional jump or move depends on
uninitialised value(s).
(Bug#45511:http://bugs.mysql.com/45511)
See alsoBug#43076:http://bugs.mysql.com/43076.
* Replication: Large transactions and statements could corrupt
the binary log if the size of the cache (as set by
max_binlog_cache_size) was not large enough to store the
changes.
Now, for transactions that do not fit into the cache, the
statement is not logged, and the statement generates an error
instead.
For non-transactional changes that do not fit into the cache,
the statement is also not logged --- an incident event is
logged after committing or rolling back any pending
transaction, and the statement then raises an error.
Note
If a failure occurs before the incident event is written the
binary log, the slave does not stop, and the master does not
report any errors.
(Bug#43929:http://bugs.mysql.com/43929)
See alsoBug#37148:http://bugs.mysql.com/37148.
* Replication: The --database option for mysqlbinlog was ignored
when using the row-based logging format.
(Bug#42941:http://bugs.mysql.com/42941)
* Replication: Shutting down the server while executing FLUSH
LOGS, CHANGE MASTER TO, or STOP SLAVE could sometimes cause
mysqld to crash. (Bug#38240:http://bugs.mysql.com/38240)
* Replication: When reading a binary log that was in use by a
master or that had not been properly closed (possibly due to a
crash), the following message was printed: Warning: this
binlog was not closed properly. Most probably mysqld crashed
writing it. This message did not take into account the
possibility that the file was merely in use by the master,
which caused some users concern who were not aware that this
could happen.
To make this clear, the original message has been replaced
with Warning: this binlog is either is use or was not closed
properly. (Bug#34687:http://bugs.mysql.com/34687)
* The server crashed if evaluation of GROUP_CONCAT(... ORDER BY)
required allocation of a sort buffer but allocation failed.
(Bug#46080:http://bugs.mysql.com/46080)
* When creating tables using the IBMDB2I storage engine with the
ibmdb2i_create_index_option option set to 1, creating an
IBMDB2I table with a primary key should produce an additional
index that uses EBCDIC hexadecimal sorting, but this index was
not created. (Bug#45983:http://bugs.mysql.com/45983)
* With InnoDB tables, MySQL used a less-selective secondary
index to avoid a filesort even if a prefix of the primary key
was much more selective.
The fix for this problem might cause other queries to run more
slowly. (Bug#45828:http://bugs.mysql.com/45828)
* The server crashed for attempts to use REPLACE or INSERT ...
ON DUPLICATE KEY UPDATE with a view defined using a join.
(Bug#45806:http://bugs.mysql.com/45806)
* Some collations were causing IBMDB2I to report inaccurate key
range estimations to the optimizer for LIKE clauses that
select substrings. This can be seen by running EXPLAIN. This
problem primarily affects multi-byte and unicode character
sets. (Bug#45803:http://bugs.mysql.com/45803)
* Invalid memory reads and writes were generated when altering
merge and base tables. This could lead to a crash or Valgrind
errors:
==28038== Invalid write of size 1
at: memset (mc_replace_strmem.c:479)
by: myrg_attach_children (myrg_open.c:433)
by: ha_myisammrg::attach_children() (ha_myisammrg.cc:546)
by: ha_myisammrg::extra(ha_extra_function) (ha_myisammrg.cc:944)
by: attach_merge_children(TABLE_LIST*) (sql_base.cc:4147)
by: open_tables(THD*, TABLE_LIST**, unsigned*, unsigned) (sql_base.cc
:4709)
by: open_and_lock_tables_derived(THD*, TABLE_LIST*, bool) (sql_base.c
c:4977)
by: open_n_lock_single_table (mysql_priv.h:1550)
by: mysql_alter_table(sql_table.cc:6428)
by: mysql_execute_command(THD*) (sql_parse.cc:2860)
by: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse
.cc:5933)
by: dispatch_command (sql_parse.cc:1213)
(Bug#45796:http://bugs.mysql.com/45796)
* Inserting data into a table using the macce character set with
the IBMDB2I storage engine would fail.
(Bug#45793:http://bugs.mysql.com/45793)
* There was a race condition when changing
innodb_commit_concurrency at runtime to the value DEFAULT.
(Bug#45749:http://bugs.mysql.com/45749)
See alsoBug#42101:http://bugs.mysql.com/42101.
* Performing an empty XA transaction caused the server to crash
for the next XA transaction.
(Bug#45548:http://bugs.mysql.com/45548)
* For replication of a stored procedure that uses the gbk
character set, the result on the master and slave differed.
(Bug#45485:http://bugs.mysql.com/45485)
* SHOW CREATE TRIGGER requires the TRIGGER privilege but was not
checking privileges. (Bug#45412:http://bugs.mysql.com/45412)
* An assertion failure could occur if InnoDB tried to unlock a
record when the clustered index record was unknown.
(Bug#45357:http://bugs.mysql.com/45357)
*Bug#19027:http://bugs.mysql.com/19027caused
--enable-plugin_name (for example, --enable-innodb) not to
work. (Bug#45336:http://bugs.mysql.com/45336)
* If autocommit was enabled, InnoDB did not roll back DELETE or
UPDATE statements if the statement was killed.
(Bug#45309:http://bugs.mysql.com/45309)
* Use of DECIMAL constants with more than 65 digits in CREATE
TABLE ... SELECT statements led to spurious errors or
assertion failures. (Bug#45262:http://bugs.mysql.com/45262)
* The mysql client could misinterpret some character sequences
as commands under some circumstances.
(Bug#45236:http://bugs.mysql.com/45236)
* Use of CONVERT() with an empty SET value could cause an
assertion failure. (Bug#45168:http://bugs.mysql.com/45168)
* InnoDB recovery could hang due to redo logging of doublewrite
buffer pages. (Bug#45097:http://bugs.mysql.com/45097)
* when reading binary data, the concatenation function for
geometry data collections did not rigorously check for
available data, leading to invalid reads and server crashes.
(Bug#44684:http://bugs.mysql.com/44684)
* If an error occurred during the creation of a table (for
example, the table already existed) having an AUTO_INCREMENT
column and a BEFORE trigger that used the INSERT ... SELECT
construct, an internal flag was not reset properly. This led
to a crash the next time that the table was opened again.
(Bug#44653:http://bugs.mysql.com/44653)
* For queries with a sufficient number of subqueries in the FROM
clause of this form:
SELECT * FROM (SELECT 1) AS t1,
(SELECT 2) AS t2,
(SELECT 3) AS t3, ...
The query failed with a Too high level of nesting for select
error, as though the query had this form:
SELECT * FROM (SELECT 1 FROM (SELECT 2 FROM (SELECT 3 FROM ...
(Bug#44156:http://bugs.mysql.com/44156)
* configure.in contained references to literal instances of nm
and libc, rather than to variables parameterized for the
proper values on the current platform.
(Bug#42721:http://bugs.mysql.com/42721)
* configure.in did not properly check for the
pthread_setschedprio() function.
(Bug#42599:http://bugs.mysql.com/42599)
* A workaround for a Sun Studio bug was instituted.
(Bug#41710:http://bugs.mysql.com/41710)
* Valgrind warnings that occurred for SHOW TABLE STATUS with
InnoDB tables were silenced.
(Bug#38479:http://bugs.mysql.com/38479)
* In the mysql client, if the server connection was lost during
repeated status commands, the client would fail to detect this
and command output would be inconsistent.
(Bug#37274:http://bugs.mysql.com/37274)
* When invoked to start multiple server instances, mysqld_multi
sometimes would fail to start them all due to not changing
location into the base directory for each instance.
(Bug#36654:http://bugs.mysql.com/36654)
* Renaming a column that appeared in a foreign key definition
did not update the foreign key definition with the new column
name. (Bug#21704:http://bugs.mysql.com/21704)