オリジナル版:http://lists.mysql.com/announce/1050
最も普及しているオープンソースデータベース管理システムの新バージョンMySQL Community Server 5.6.29がリリースされました。MySQL 5.6.29は、プロダクションシステムでの使用をお勧めします。
MySQL 5.6の特徴としては、以下のようなものがあります。
・InnoDB、オプティマイザ、レプリケーション、パーティショニングの性能向上
・GTID(Global Transaction ID)の実装
・Performance_schemaの機能強化
その他詳細については、下記URLを参照してください。
http://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html
新たなサーバにMySQL 5.6.29をインストール、または以前のMySQLリリースからMySQL 5.6.29にアップグレードする際の情報については、以下を参照してください。
http://dev.mysql.com/doc/refman/5.6/en/installing.html
下記のダウンロードページから、MySQLサーバのソースコード及び多数のプラットフォーム用バイナリが入手可能です
http://dev.mysql.com/downloads/
現時点ですべてのミラーサイトが最新であるとは限らないことに注意してください。
あるミラーサイトで本バージョンを見つけることができない場合は、後日再確認を行うか、別のダウンロード・サイトを選択してください。
フィードバック、バグレポート、バグ修正、パッチ等の情報をお待ちしておりますので、以下のページをご利用ください。
https://wikis.oracle.com/display/mysql/Contributing
以下のセクションは、MySQL5.6の前リリース以降のMySQLソースコードの変更を記載しています。これはオンラインでも閲覧可能です:
http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-29.html
以下は、追加または変更された機能です。
Changes in MySQL 5.6.29 (2016-02-05)
Packaging Notes
* Packaging support for Ubuntu 15.10 was added. (Bug
#79104, Bug #22147191)
Security Notes
* The linked OpenSSL library for the MySQL Commercial
Server has been updated from version 1.0.1p to version
1.0.1q. Issues fixed in the new version are described at
http://www.openssl.org/news/vulnerabilities.html.
This change does not affect the Oracle-produced MySQL
Community build of MySQL Server, which uses the yaSSL
library instead. (Bug #22348181)
Functionality Added or Changed
* InnoDB: A new InnoDB configuration option, innodb_tmpdir,
allows you to configure a separate temporary file
directory for online ALTER TABLE operations. This option
was introduced to help avoid tmpdir overflows that could
occur as a result of large temporary files created during
online ALTER TABLE operations. innodb_tmpdir is a SESSION
variable and can be configured dynamically using a SET
statement. (Bug #19183565)
* yaSSL was upgraded to version 2.3.9. This upgrade
corrects an issue in which yaSSL handled only cases of
zero or one leading zeros for the key agreement instead
of potentially any number, which in rare cases could
cause connections to fail when using DHE cipher suites.
(Bug #22361038)
* The Valgrind function signature in
mysql-test/valgrind.supp was upgraded for Valgrind 3.11.
(Bug #22214867)
Bugs Fixed
* InnoDB: A small InnoDB buffer pool size with a large
innodb_stats_persistent_sample_pages setting resulted in
a Difficult to find free blocks in the buffer pool
warning. (Bug #22385442)
* InnoDB: Starting the server with an empty
innodb_data_home_dir entry in the configuration file
caused InnoDB to look for the buffer pool file in the
root directory, resulting in a startup error. (Bug
#22016556)
* InnoDB: A full-text query run under high concurrency
caused a server exit due to an invalid memory access.
(Bug #21922532)
* InnoDB: With a large innodb_sort_buffer_size setting,
adding an index on an empty table performed more slowly
than expected. (Bug #21762319, Bug #78262)
* Replication: When DML invokes a trigger or a stored
function that inserts into an AUTO_INCREMENT column, that
DML has to be marked as an unsafe statement. If the
tables are locked in the transaction prior to the DML
statement (for example by using LOCK TABLES), then the
DML statement was not being marked as an unsafe
statement. The fix ensures that such DML statements are
marked correctly as unsafe. (Bug #17047208)
* Replication: As part of the fix for Bug #16290902, when
writing a DROP TEMPORARY TABLE IF EXISTS query into the
binary log, the query is no longer preceded by a USE `db`
statement. Instead the query uses a fully qualified table
name, for example DROP TEMPORARY TABLE IF EXISTS
`db`.`t1`;. This changed the application of
replicate-rewrite-db filter rules, as they work only on
the default database specified in a USE statement. This
caused slaves to fail when the resulting CREATE TEMPORARY
TABLE was applied. The fix ensures that at the time of
writing a DROP TEMPORARY TABLE IF EXISTS query into the
binary log, a check is made for the default database. If
it exists then the query is written as USE default_db in
the binary log. If a default database is not present then
the query is logged with the qualified table name. (Bug
#77417, Bug #21317739)
* Replication: If generating a GTID for a transaction
fails, the transaction is not written to the binary log
but still gets committed. Although running out of GTIDs
is a rare situation, if it did occur an error was written
to the binary log as a sync stage error. With
binlog_error_action=ABORT_SERVER, the server aborts on
such an error, avoiding data inconsistency. When
binlog_error_action=IGNORE_ERROR, the server continues
binary logging after such an error, potentially leading
to data inconsistency between the master and the slave.
The fix changes the error to be correctly logged as a
flush stage error. (Bug #77393, Bug #21276661)
* Replication: When using --gtid-mode=on ,
--enforce-gtid-consistency , and --binlog-format=row, if
a user defined function with multiple DROP TEMPORARY
TABLE statements was executed on a master, the resulting
binary log caused an error on slaves. The fix ensures
that stored functions and triggers are also considered
multi-statement transactions, and that when
--enforce-gtid-consistency is enabled, functions with
CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE statements
generate an
ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION
error. (Bug #77354, Bug #21253415)
* Replication: Stored procedure local variables that were
used in an ALTER EVENT statement were not being
replicated correctly. This was related to the fact that
CALL statements are not written into the binary log.
Instead each statement executed in a stored procedure is
binary logged separately, with the exception that the
query string is modified so that uses of stored procedure
local variables are replaced with
NAME_CONST('spvar_name', 'spvar-value') calls. DDL
statements (which are always binary logged in statement
binary log mode irrespective of the current binary log
format) can also use stored procedure local variables and
a clash could cause them to not be replicated correctly.
The fix ensures that any stored procedure local variables
used in a query are replaced with NAME_CONST(...), except
for the case when it is a DML query and the binary log
format is ROW. (Bug #77288, Bug #21229951)
* Replication: DROP TABLE statements are regenerated by the
server before being written to the binary log. If a table
or database name contained a non-regular character, such
as non-latin characters, the regenerated statement was
using the wrong name, breaking replication. The fix
ensures that in such a case the regenerated name is
correctly converted back to the original character set.
Also during work on this bug, it was discovered that in
the rare case that a table or database name contained 64
characters, the server was throwing an assert(M_TBLLEN <
128) assertion. The assertion has been corrected to be
less than or equal 128. (Bug #77249, Bug #21205695)
References: See also Bug #78036, Bug #22261585, Bug
#21619371.
* Replication: Irrespective of the current binlog_format
setting, DDL that changes metadata on a master is always
identified and written to the binary log in STATEMENT
format. Such DDL could occur from event based SQL
statements, such as CREATE EVENT or DROP EVENT, or
transactions that had unsafe functions such as sysdate().
When binlog_format=MIXED and attempting to replicate such
DDL, it was not being correctly identified and therefore
was not being correctly replicated. (Bug #71859, Bug
#19286708)
* Inserting a token of 84 4-byte characters into a
full-text index raised an assertion. The maximum token
length was 84 characters up to a maximum of 252 bytes,
which did not account for 4-byte characters. The maximum
byte length is now 336 bytes. (Bug #22291765)
* If a client attempted to use an unsupported client
character set (ucs2, utf16, utf32), the error message
reported to the client differed for SSL and non-SSL
connections. (Bug #22216715)
* Data corruption or a server exit could occur if a stored
procedure had a variable declared as TEXT or BLOB and
data was copied to that variable using SELECT ... INTO
syntax from a TEXT or BLOB column. (Bug #22203532, Bug
#22232332, Bug #21941152)
* CREATE TEMPORARY TABLE .. SELECT statements involving BIT
columns that resulted in a column type redefinition could
cause a server exit or an improperly created table. (Bug
#21902059)
* Added Microsoft Visual Studio 2015 support. Changes
include using the native (added in VS 2015) timespec
library if it exists, renamed lfind/lsearch and
timezone/tzname to avoid redefinition problems, set
TMPDIR to "" by default as P_tmpdir no longer exists,
deprecated std::hash_map in favor of std::unordered_map,
and added Wix Toolset 3.10 support. (Bug #21770366)
References: See also Bug #21657078.
* With character_set_server=utf16le, some values of
ft_boolean_syntax could cause a server exit for full-text
searches. (Bug #21631855)
* With LOCK TABLES in force, an attempt to open a temporary
MERGE table consisting of a view in its list of tables
(not the last table in the list) caused a server exit.
(Bug #20691429)
* For certain prepared statements, the optimizer could
transform join conditions such that it used a pointer to
a temporary table field that was no longer available
after the initial execution. Subsequent executions caused
a server exit. (Bug #19941403)
* Repeated execution of ALTER TABLE v1 CHECK PARTITION as a
prepared statement, where v1 is a view, led to a server
exit.
In addition, output for some administrative operations,
when they are attempted on a view, changes from "Corrupt"
to "Operation failed". These include ANALYZE TABLE,
OPTIMIZE TABLE, and REPAIR TABLE, and ALTER TABLE
statements that perform ANALYZE PARTITION, CHECK
PARTITION, OPTIMIZE PARTITION, and REPAIR PARTITION
operations. (Bug #19817021)
* Valgrind detected some possibly unsafe use of string
functions in code used for asymmetric encryption. (Bug
#19688135)
* SSL connections ignored any change made by passing the
MYSQL_OPT_READ_TIMEOUT option to the mysql_options() C
API function. (Bug #17618162)
* Solaris packages failed to note the dependency of the
MySQL client library on the libstlport library. (Bug
#79778, Bug #22504264)
* Using systemd to start mysqld failed if configuration
files contained multiple datadir lines. Now the last
datadir line is used. (Bug #79613, Bug #22361702)
* If server was started with --thread-handling=no-threads,
no foreground thread was created for a client connection.
The Performance Schema did not account for the
possibility of no foreground threads for queries on the
session_connect_attrs table, causing an assertion to be
raised. (Bug #78292, Bug #21765843)
* ALTER TABLE ... CONVERT TO CHARACTER SET operations that
used the INPLACE algorithm were ineffective if the table
contained only numeric data types. Also, such operations
failed to clean up their temporary .frm file. (Bug
#77554, Bug #21345391)
* Heavy SHOW PROCESSLIST or SELECT ... FROM
INFORMATION_SCHEMA.PROCESSLIST activity could result in
the server accepting more than max_connections
connections. (Bug #75155, Bug #20201006)
* When used with the libmysqld embedded server, the
mysql_stmt_execute() C API function failed with a
malformed communication packet error, even for simple
prepared statements. (Bug #70664, Bug #17883203)
On Behalf of the MySQL/ORACLE RE Team
Hery Ramilison