オープンソース サポート サービス(OSS サポート サービス)| オープンソースまるごと OpenStandia™(オープンスタンディア)
野村総合研究所


MySQL5.6.11 での変更点( 2013-04-18 )

RPM に関する注意

・ rpmuvh または yum localupdate を使用してコミュニティRPMをコマーシャルRPMにアップグレードできなかった。MySQL5.6.11で、この問題に対処するためにRPM仕様ファイルが更新され、以下のような影響が生じた。

  • アップグレードではないインストールを行う場合(既存のMySQLがインストールされていない場合)、 yum を使用したMySQLのインストールが可能。

  • アップグレードの場合、インストールされている古いバージョンのMySQLをすべてクリーンアップする必要がある。実際のところ、アップデートは、古いバージョンを削除して新しいバージョンをインストールすることによって実行される。

詳細については、以下を参照。

アップグレードではなくMySQL5.6.11をインストールする場合、以下のように yum を使用したインストールが可能。

shell> yum install MySQL-server- NEWVERSION .glibc23.i386.rpm

MySQL5.6.11にアップグレードする場合、古いバージョンを削除して新しいバージョンをインストールすることによってアップグレードが実行される。方法としては、以下の手順を実行する。

a. 既存のバージョン5.6. X を削除する。 OLDVERSION は削除するバージョン。

shell> rpm -eMySQL-server- OLDVERSION .glibc23.i386.rpm

この手順を繰り返して、インストールされているすべてのバージョンのMySQLRPMを削除する。

b. 新しいバージョンをインストールする。 NEWVERSION はインストールするバージョン。

shell> rpm -ivhMySQL-server- NEWVERSION .glibc23.i386.rpm

もしくは、以下のように yum を使用して、削除とインストールを実行することも可能。

shell> yum removeMySQL-server- OLDVERSION .glibc23.i386.rpm

shell> yum installMySQL-server- NEWVERSION .glibc23.i386.rpm

(Bug#16445097、Bug#16445125、Bug#16587285)

機能の追加と変更

・ レプリケーション : 関数 GTID_SUBTRACT() および GTID_SUBSET() は、以前は libmysqld がレプリケーションサポート付きでビルドされている場合のみ、このライブラリで使用できた。現在は、ライブラリがどのようにビルドされているかに関係なく、このライブラリを使用するときにいつでもこれらの関数を利用できる。

・ MySQLは、デフォルトのOpenSSL圧縮を使用しなくなった(Bug#16235681)。

・ 期限切れパスワードで認証を行ったクライアントに対してサーバから送信されるエラーについて、明確なエラーコード( ER_MUST_CHANGE_PASSWORD_LOGIN )が存在するようになった(Bug#16102943)。

・ mysql_config_editor は、TCP/IPポート番号およびUnixのソケットファイル名を指定する、 --port および --socket オプションをサポートするようになった(Bug#15851247)。

・ mysqlcheck に --skip-database オプションが新たに加わった。オプション値は、チェックをスキップするデータベースの名前(大文字小文字が区別される)。

mysql_upgrade は、このオプションを使って mysql データベースのシステムテーブルを更新してから、他のデータベースのテーブルを更新する。つまり、 mysql データベースを更新してから、 mysql データベース以外のすべてのデータベースを更新する。そうすることで、システムテーブルよりも前にユーザテーブルが更新された場合に生じる問題を防ぐことができる(Bug#14697538)。

・ innodb_mirrored_log_groups システム変数でサポートされる値は1だけなので、この変数は非推奨となった。起動時にこの変数に1を設定すると、警告が表示される。1以外の値を設定すると、エラーが表示されてサーバが終了する。この変数は、今後のリリースでは削除される。

修正されたバグ

・ パフォーマンス :InnoDB: 各テーブル用のキャッシュポリシーについてキャッシュされた情報を読み込むことにより、 InnoDBのmemcachedインタフェース ( @@ 表記を使用)によって使用されるMySQLのテーブルの切り替えが効率的になった。この最適化により、memcachedインタフェースを使用するセッション中に、テーブルのメタデータを毎回調べることによるI/Oオーバーヘッドを生じさせずに、テーブルを頻繁に切り替えられるようになる(Bug#16206654)。

・ パフォーマンス :InnoDB: 削除されたが パージ されていない行が多数あるテーブル操作のパフォーマンスが改善された。これは主に、大量の削除や プライマリキー カラムの更新を実行する作業で、 パージ遅延 が生じるほどシステムがビジー状態になる場合の速度が改善された(Bug#16138582、Bug#68069)。

・ パフォーマンス :InnoDB: 圧縮 を使用するテーブルの DROP TABLE ステートメントが必要以上に遅くなり、数秒間停止する可能性があった。MySQLは、 DROP 操作の一部として、テーブルに関連する バッファプール 内の ページ を不必要に展開していた(Bug#16067973)。

・ パフォーマンス :InnoDB: AIO サブシステムの効率が上がった場合に、連続したI/OリクエストをマージするためにI/Oルーチンが使用される。この修正により、5.6の開発サイクルで生じたパフォーマンス問題が解決される(Bug#16043841,Bug#67973)。

・ 矛盾を含む可能性がある変更 : パーティショニング : 数値、日時、 ENUM 、および SET カラムを使用する KEY パーティショニングのハッシュ関数をMySQL5.5で変更したことにより、影響を受けるカラムタイプで KEY によるパーティショニングまたはサブパーティショニングを使用するテーブルおよびMySQL5.5以降のサーバで作成されたテーブルが、MySQL5.1サーバとの互換性を失った。これは、これらの関数を変更したことにより、同じテーブルの定義およびデータに対して、MySQL5.5以降のサーバで計算されるパーティションIDとMySQL5.1サーバで計算されるパーティションIDがほぼ確実に異なるようになったことが原因。

この問題の原因となるMySQL5.5における KEY パーティショニングの実装の主な変更点は、次の2点である。1.数値および日時のカラムに使用されるハッシュ関数が、バイナリから文字ベースに変更された。2. ENUM および SET カラムのハッシュに使用されるベースが、 latin1ci 文字からバイナリに変更された。

修正として、MySQL5.5以降では、 KEY パーティショニングに使用するハッシュのタイプを選ぶ機能が追加された。 CREAT ETABLE および ALTER TABLE の PARTITION BY KEY オプションに新たに ALGORITHM 拡張が実装された。 PARTITION BY KEY ALGORITHM=1([ columns ]) を指定すると、サーバはMySQL5.1に実装されているハッシュ関数を使用する。 ALGORITHM=2 を指定すると、サーバはMySQL5.5以降のハッシュ関数を使用する。デフォルトは ALGORITHM=2 。 ALGORITHM に適切な値を指定することで、以下のようなタスクを実行できる。

  • MySQL5.5以降で、MySQL5.1と互換性のある KEY パーティションテーブルの作成。 CREATE TABLE ... PARTITION BY KEY ALGORITHM=1 (...) を使用。

  • MySQL5.5以降で作成された KEY パーティションテーブルをダウングレードしてMySQL5.1と互換性を持たせる。 ALTER TABLE ... PARTITION BY KEY ALGORITHM=1 (...) を使用。

  • MySQL5.5以降と同じハッシュを使用するために、MySQL5.1で作成された KEY パーティションテーブルをアップグレードする。 ALTER TABLE ... PARTITION BY KEY ALGORITHM=2 (...) を使用。

重要 :このようにアップグレードしたテーブルは、 ALTER TABLE ... PARTITION BY KE YALGORITHM=1 (...) がサポートされるMySQLでこのオプションを使用してテーブルを再びダウングレードしない限り、MySQL5.1では使用できない。

この構文は下位互換性がないため、古いバージョンのMySQLサーバではエラーが発生する。 mysqldump は、 CREATE TABLE ... PARTITION BY KEY ステートメントの生成時に ALGORITHM=1 または ALGORITHM=2 があると、それを条件付きコメントに含めるため、5.5.31よりも古いバージョンのMySQLサーバはこれを無視する。アップグレードに関してさらに考慮すべきことがある。MySQL5.6.11よりも前のMySQL5.6サーバは、ステートメントがMySQL5.5サーバで生成されている場合、このようなステートメントで ALGORITHM オプションを無視しない。これは、条件付きコメントがバージョン5.5.31を参照するためである。このような場合、MySQL5.6.10またはそれよりも古いMySQL5.6サーバにロードする前に、手動でダンプを編集し、このオプションをすべて削除またはコメントアウトする必要がある。MySQL5.6.11以降のバージョンの mysqldump で生成されるダンプでは、コメントで使用されるバージョンが5.6.11であるため、この問題は関係ない。詳細については、 「ALTER TABLE Partition Operations」 を参照。

この修正の一環として、 InnoDB による誤った表明も削除された。削除された行が以前に読み込まれたため、行の削除時に行が間違ったパーティションにあるという表明をサーバが発行していた(Bug#14521864、Bug#66462、Bug#16093958、Bug#16274455)。

参考:Bug#11759782も参照。

・ 重要な変更 : レプリケーション : 暗黙的なコミットを実行するが、 gtid_next が AUTOMATIC 以外の値に設定されている場合、その変更がログに記録されないステートメントの実行は許可されていない。このような場合、現在は、エラーが発生してステートメントが失敗するようになった。以下のようなステートメントがこれに該当する。

  • CHANG EMASTER TO

  • START SLAVE

  • STOP SLAVE

  • REPAIR TABLE

  • OPTIMIZE TABLE

  • ANALYZE TABLE

  • CHECK TABLE

  • CREATE SERVER

  • ALTER SERVER

  • DROP SERVER

  • CACHE INDEX

  • LOAD INDEX INTO CACHE

  • FLUSH

  • RESET

(Bug#16062608)

参考:Bug#16484323も参照。

・ 重要な変更 : レプリケーション : mysqlbinlog --version によってレポートされるバージョン番号が3.4まで上がった(Bug#15894381、Bug#67643)。

・ 重要な注意事項 : レプリケーション : ステートメントベースのログを使用して、テーブルから同一名のビューへの複製が可能であった。代わりに行ベースのログを使用すると、スレーブでエラーが発生した。現在は、DMLの実行前にターゲットオブジェクトのタイプが確認され、スレーブのターゲットが実際にはテーブルでない場合、エラーが発生する。これは、バイナリログフォーマットが使用されているかどうかに関係なく該当する(Bug#11752707、Bug#43975)。

・ InnoDB: ALTER TABLE ステートメントで ADD PRIMARY KEY カラムが並べかえられると(例: ALTER TABLE t1 ADD PRIMARY KEY(a,b), CHANGE a a INT AFTER b )、 UPDATE 操作用のログが行の検索に失敗した(Bug#16586355)。

・ InnoDB: InnoDB テーブルに対する ALTER TABLE 操作で、カラムプリフィックスを使用して PRIMARY KEY を追加すると、結果が正しくならない可能性があった(Bug#16544336)。

・ InnoDB: InnoDB テーブルに対する ALTER TABLE 操作で、テーブルコピー操作が必要な場合、コピー中にテーブルのその他のトランザクションが失敗する可能性があった。しかし、このようなトランザクションが部分ロールバックを発行した場合、ロールバックが完全ロールバックとして処理された(Bug#16544143)。

・ InnoDB: 全文検索で「abc-def」などの区切られた検索文字列を解析する場合、 InnoDB は MyISAM と同じ区切り文字を使用するようになった(Bug#16419661)。

・ InnoDB: この修正で、InnoDBの PERFORMANCE_SCHEMA のキー宣言における命名矛盾に対処することにより、コードが読みやすくなる(Bug#16414044)。

・ InnoDB: この修正では、圧縮されたテーブルでクラスタ化されたインデックスのリーフページをさらに分割するための条件が無効になる。ページのさらなる分割は、将来行う更新のためにスペースを確保し、将来のページ分割を回避するためだけに行われていた(Bug#16401801)。

・ InnoDB: InnoDB テーブルで、 VARCHAR カラム(またはプリフィックス)の PRIMARY KEY が空の場合、インデックスページの圧縮が失敗する可能性があった(Bug#16400920)。

・ InnoDB: INNODB_FT_CONFIG テーブルのステータス値が更新されなかった。 INNODB_FT_CONFIG は内部構成用のテーブルであるため、統計情報として使用すべきでない。混乱を避けるために、内部使用を目的とするカラム値は INNODB_FT_CONFIG テーブルから削除された。この修正では、 INNODB_FT_INSERTED テーブルおよび、意図せず表示されていた全文検索関連のその他の内部テーブルも削除される(Bug#16409494)。

・ InnoDB: innodb_api_enable_mdl=OFF の場合、テーブルコピーが必要な InnoDB テーブルに対する ALTER TABLE 操作により、サーバが終了する可能性があった(Bug#16287411)。

・ InnoDB: ALTER TABLE ... ADD FOREIGN キーの実行中に、参照元と参照先の間の互換性について不適切なテストを行うと、サーバが終了する可能性があった(Bug#16330036)。

・ InnoDB: 読み取り専用のトランザクションによってテンポラリテーブルに加えられた変更は、ロールバックに含まれなかった(Bug#16310467)。

・ InnoDB: InnoDB のページ分割アルゴリズムは、非常に再帰的である可能性があった(Bug#16345265)。

・ InnoDB: デバッグビルドで、 InnoDB のステータスエクスポートが競合状態になり、サーバが終了する可能性があった(Bug#16292043)。

・ InnoDB: ALTER TABLE を使用して AUTO_INCREMENT カラム値にユーザ指定の値を設定するとき、InnoDBは、 AUTO_INCREMENT 値がユーザ指定の値よりも大きい場合でも、 AUTO_INCREMENT 値にユーザ指定の値を設定した。この修正により、期待どおりユーザ指定の値とMAX(auto_increment_column)+1の大きい方が AUTO_INCREMENT の値として設定されるようになる(Bug#16310273)。

・ InnoDB: 構成ファイルが存在する状態でテーブルスペースをインポートすると、データファイルがインポートされなかった。コピーして名前を変更する方法でテーブルを変更した後、バッファプールからすべてのページがフラッシュされていない場合、この問題が発生した。この修正により、コピーして名前を変更する方法でテーブルが変更される場合、バッファプールからすべてのページがフラッシュされるようになった(Bug#16318052)。

・ InnoDB: RENAMETABLEは、MySQLのミューテックス取得によるデッドロックが原因でハングした(Bug#16305265)。

・ InnoDB: 内部読み込み操作が、実際には非同期であるのに同期として誤って分類される可能性があった。I/O要求が予想以上に速く返される場合、スレッドが非効率的にスケジュールされている可能性があった。この問題は、主に 先読み 要求に影響するため、ユーザクエリによって実行されるI/Oへの影響は比較的少なかった(Bug#16249505、Bug#68197)。

・ InnoDB: デバッグビルドのみに存在する lock_validate 関数は、ミューテックスの使用量を増やさないために、ミューテックスを取得して解放していた。この動作によりウィンドウが導入された。このウィンドウにおいて、コードで同じデータセットがトラバースされるのに、ハッシュテーブルへの変更が発生する可能性があった。この修正は、ロックを有効にする必要があるすべてのレコードを収集するように lock_validate ロジックを更新し、ミューテックスを解放し、レコードロックを有効にするループを実行する( Bug#16235056 )。

・ InnoDB: ALTER TABLE 関数は、InnoDBが読み取り専用モード( srv_read_only_mode=true )であるかどうかのチェックを実行していた。InnoDBが読み取り専用モードの場合、成功のステータスが返され、それ以外は何も行われなかった。この修正では、 srv_read_only_mode のチェック条件をデバッグアサーションに置き換える(Bug#16227539)。

・ InnoDB: InnoDB によって abort() への不適切な呼び出しが行われると、サーバが終了する可能性があった(Bug#16263506)。

・ InnoDB: InnoDBのバッファプールが4KBの圧縮ページでほとんどいっぱいのときに、16KBの圧縮テーブルへの挿入を行うと、8KBの pages_free が増加し、それにより挿入が遅くなったり停止する可能性があった(Bug#16223169)。

・ InnoDB: row_merge_read_clustered_index() がエラーを返した場合に出現する競合状態が原因で、 heap->magic_n == MEM_BLOCK_MAGIC_N で表明違反が発生した(Bug#16275237)。

・ InnoDB: この修正で、デバッグビルドのみに影響するpage_hashロック関連の不必要なデバッグアサーションが削除される。このデバッグアサーションはもはや有効ではないため、MySQL5.6でhash_lock配列が導入されたときに削除されるべきだった(Bug#16263167)。

・ InnoDB: InnoDBの memcached プラグインは、ベンチマークの実行などによって生じる負荷の高い状態で重大なエラーが発生する可能性があった(Bug#16182660、Bug#68096)。

・ InnoDB: 変更バッファ からパージ操作が適用されたちょうどそのときに、MySQLサーバが停止した場合、次に再起動したときに、このパージ操作が誤って再び実行される可能性があった。回避策として、構成オプション innodb_change_buffering=changes を設定し、パージ操作の変更バッファリングをオフにした(Bug#16183892、Bug#14636528)。

・ InnoDB: InnoDBのロックコードが修正されたときに、レジスタのロック待ちの呼び出しが削除されてしまった。この修正で、この呼び出しがInnoDBのロックコードに戻される(Bug#16208201)。

・ InnoDB: trx_start_if_not_started_xa_low() 関数を直接呼び出すと、デバッグアサーションが発生した(Bug#16178995)。

・ InnoDB: 外部キーテーブルへの挿入のロック待ちの場合、 InnoDB が誤った辞書変更エラーをレポートし、挿入が再試行されずに失敗する可能性があった(Bug#16174255)。

・ InnoDB: 場合によってデッドロック検出がはたらかず、ロック待ちタイムアウトを待ちながら、セッションがハングした(Bug#16169638)。

・ InnoDB: InnoDB テーブルでインプレースの ALTER TABLE を実行すると、 mysql.innodb_index_stats テーブルから古いプライマリキーの統計情報が削除されない可能性があった(Bug#16170451)。

・ InnoDB: この修正では、 ha_innodb.cc および handler0alter.cc のInnoDBコードを更新し、 TABLE::key_info および TABLE_SHARE::key_info の両者の代わりに、 TABLE::key_info を使用する(Bug#16215361)。

・ InnoDB: InnoDB テーブルで CREATE TABLE を実行するためのページ圧縮中に、算術下位桁あふれが発生すると、サーバが終了する可能性があった(Bug#16089381)。

・ InnoDB: デバッグビルドで、 InnoDB テーブルに対してオンラインの ALTER TABLE 操作を実行すると、テーブルの再構築中にサーバが終了する可能性があった(Bug#16063835)。

・ InnoDB: 場合によって、 InnoDB のパージコーディネータが、利用可能なすべてのパージスレッドを使用しなかった。その結果、次善のパージアクティビティが実行された(Bug#16037372)。

・ InnoDB: 未整列メモリアクセスを処理できないシステムでは、スタックフレームのアラインメントに応じて、起動時に SIGBUS エラーが発生する可能性があった。この問題はSolaris64ビットシステムで検出された(Bug#16021177)。

・ InnoDB: InnoDB テーブルに対する ALTER TABLE が、完全に不可分でなかった(Bug#15989081)。

・ InnoDB: innodb_mirrored_log_groups が、デフォルトの1以外の値に設定された場合、MySQLサーバの起動時、InnoDBのmemcachedプラグインをロード中に重大なエラーが発生した。古いリリースでは、この設定が変更された場合、サーバが起動を拒否した(しかし、エラーは表示されなかった)。この修正では、この構成オプションの未対応値に対するエラー処理がクリーンアップされる(Bug#15907954、Bug#67670)。

・ InnoDB: 開いているファイルが多すぎるなど、ファイルシステムレベルのエラーにより、 ALTER TABLE 操作時に未処理のエラーが発生する可能性があった。このエラーはValgrind警告、および次の表明メッセージを伴う可能性があった。

Assertion `! is_set()' failed.

mysqld got signal 6 ;

(Bug#14628410、Bug#16000909)

・ InnoDB: INNODB_SYNC_ARRAY_SIZE 変数が、誤って実行時に設定できるようになっていた。マニュアルによると、 INNODB_SYNC_ARRAY_SIZE はMySQLインスタンスの起動時に設定する必要があり、その後は変更不可能である。この修正では、目的どおり INNODB_SYNC_ARRAY_SIZE を非動的な変数に変更する(Bug#14629979)。

・ InnoDB: InnoDB が圧縮済みのセカンダリインデックスページを再編成または圧縮しようとすると、サーバが終了する可能性があった(Bug#14606334)。

・ InnoDB: RENAME TABLE ステートメントがタイムアウトする前に数分間停止する可能性があった。この問題は、 変更バッファリング が有効になっている状態で、 圧縮 を使用するテーブルで発生する可能性があった(Bug#14556349)。

・ InnoDB: RENAME TABLE 操作がテーブルスペースで保留中のI/O操作の完了を待機している間にDML操作を実行すると、デッドロックが発生した(Bug#14556349)。

・ InnoDB: skip-innodb オプションを使ってサーバが起動された場合、もしくは、 InnoDB が起動に失敗した場合、以下の情報スキーマテーブルへのクエリにより重大なエラーが起きた。

  • INNODB_BUFFER_PAGE

  • INNODB_BUFFER_PAGE_LRU

  • INNODB_BUFFER_POOL_STATS

(Bug#14144290)

・ InnoDB: オンラインのDDL には、単一の ALTER TABLE ステートメント内でカラム名を変更し、そのカラムを含む外部キーを追加することを禁止する制限があった。現在は、単一のステートメント内でこれらの操作を組み合わせて行うことが可能である(Bug#14105491)。

・ InnoDB: long semaphore wait診断の出力時に、競合状態により sync_array_cell_print() でセグメンテーション違反(SEGV)が発生した。この修正では、出力中にセルが解放されるようにすることで競合状態を解決する(Bug#13997024)。

・ InnoDB: MySQL5.1のInnoDBプラグインの全サーバリリース、およびMySQL5.5、5.6、それ以降の統合 InnoDB コンポーネントに対する innodb_version 変数の値の更新に一貫性がなかった。 InnoDB とMySQLServerの開発サイクルが完全に統合化され、同期化されたため、現在 innodb_version 変数で返される値は version 変数と同じである(Bug#13463493、Bug#63435)。

・ InnoDB: クエリを停止すると、同じテーブル(カーソル)インスタンスが再び使用されたときに、InnoDB表明違反が発生した。これは、Bug#14704286の修正によって生じた退化エラーの結果である。この修正では、実行時間の長いクエリでkillシグナルを処理するチェックが導入されたが、カーソルは適切な状態に回復されなかった(Bug#68051、Bug#16088883)。

・ InnoDB: 64ビットLinuxおよび64ビットWindowsシステムで、CPUがcrc32命令をサポートしないというメッセージがInnoDBによって起動時にレポートされた。Windowsでは、CPUがサポートしていたとしても、InnoDBはcrc32命令を使用しない。この修正では、メッセージの表現を修正し、crc32命令を使用できるかどうかのチェックを実装する(Bug#68035、Bug#16075806)。

・ InnoDB: 内部生成された外部キー名の長さがチェックされなかった。内部生成された外部キー名が64文字の制限を超えた場合、SHOW CREATE TABLEから無効なDDLが生成された。この修正では、内部生成された外部キー名の長さをチェックし、制限を超えている場合、エラーメッセージをレポートする(Bug#44541、Bug#11753153)。

・ InnoDB: この修正では、 srv_parse_log_group_home_dirs の使い終わったプロトタイプコードと関連ヘッダコメントを削除する(Bug#68133、Bug#16198764)。

・ InnoDB: INFORMATION_SCHEMA.innodb_ft_default_stopword と同じ構造のInnoDBテーブルを作成してデフォルトのInnoDBFTSストップワードリストを置き換えようとすると、エラーが発生した。 SHOW CREATE TABLE により、新しいInnoDBが CHARSET=utf8 で作成されていることが判明した。InnoDBFTSストップワードテーブルの妥当性チェックでは、latin1のみサポートされていた。この修正では、サポートされるすべての文字セットに対応するよう、妥当性チェックを拡張する(Bug#68450、Bug#16373868)。

・ パーティショニング : MySQL5.6.10では、パーティションされたテーブルに対して操作するDDLステートメントで ALGORITHM = INPLACE を使用することが禁止されていたが、このようなステートメントで再び使用できるようになった(Bug#16216513)。

参考:Bug#14760210も参照。

・ パーティショニング : レンジでパーティションされ、 TO_DAYS() をパーティショニング関数として使用しているテーブルへのクエリは、取り除きのときに常にテーブルの最初のパーティションを含んでいた。クエリの BETWEEN 句に使用されているレンジに関係なくこの事象が発生した(Bug#15843818、Bug#49754)。

・ パーティショニング : ビューに対して ALTER TABLE ... DROP PARTITION を実行すると、予想どおりにエラーが発生して失敗するのではなく、サーバがクラッシュした(Bug#14653504)。

・ パーティショニング : DISTINCT と ORDER BY の両方が使用され、基礎となるテーブルがパーティションされていた場合、クエリ結果がソートされなかった(Bug#14058167)。

・ パーティショニング : 1000を超えるパーティションを使用する ARCHIVE テーブルに任意の数の行を挿入後、このテーブルをドロップしようとすると、MySQLServerが失敗した(Bug#13819630、Bug#64580)。

・ レプリケーション : GTIDおよびバイナリログの自動位置設定を使用している場合、マスタは、(I/Oスレッドエラーやマスタの変更などが原因で)スレーブが再接続するたびに、すべてのバイナリログをスキャンしてからでないと、イベントをスレーブに送信できなかった。現在は、スレーブで見つからないGTIDが含まれている最も古いバイナリログからスキャンを開始する(Bug#16340322、Bug#68386)。

・ レプリケーション : マスタのサーババージョンが10以上であった場合、サーババージョンがそれよりも低いスレーブへのレプリケーションが失敗した(Bug#16237051、Bug#68187)。

・ レプリケーション : レプリケーション : MySQL5.6のマスタからそれよりも古いスレーブへのレプリケーションを行うと、エラー1193(ER_UNKNOWN_SYSTEM_VARIABLE)が以下のエラーメッセージと共に記録された。

Unknown system variable 'SERVER_UUID' on master, maybe it is a *VERY OLD MASTER*

このメッセージを、より多くの情報を提供するように、以下のように改善した。

Unknown system variable 'SERVER_UUID' on master. A probable cause is that the variable is not supported on the master (version: 5.5.31), even though it is on the slave (version: 5.6.11).

(Bug #16216404、Bug #68164)

・ レプリケーション : ユーザ変数に対してゼロ長の名前( @`` など)を指定すると、バイナリログから読み取るときに誤ってデータの記号やネットワークの破損とみなされた(Bug#16200555、Bug#68135)。

・ レプリケーション : MTSがオンで、トランザクションが適用されているときに、トランザクションイベントでチェックサムエラーが発生すると、スレーブコーディネータがハングした。これは、コーティネータは正常に停止しているつもりなのに、ワーカはコーディネータがイベントをさらに送信するのを待機していてデッドロック状態になることが原因であった。デバッグビルドでは、この問題は表明違反として発生した。これは、コーディネータがエラー発生時に thd->is_error() を設定していないことが原因であった(Bug#16210351)。

・ レプリケーション : mysqlbinlog は、リモートサーバに接続してそのバイナリログを読み取ることができる。MySQL5.6以降では、実際にはマスタに接続しているスレーブのように、サーバがイベントをさらに生成して送信するのを待機できる。しかし、サーバがハートビートを送信した場合、 mysqlbinlog はそれを適切に処理できなかった。その結果、 mysqlbinlog はその時点で失敗し、サーバからそれ以上イベントを読み取れなかった。この問題を修正するために、現在、 mysqlbinlog は HEARTBEAT_LOG_EVENT タイプのバイナリログイベントを受信するとそれを無視する(Bug#16104206)。

・ レプリケーション : 1つまたは複数のステータス変数 Slave_retried_transactions 、 Slave_heartbeat_period 、 Slave_received_heartbeats 、 Slave_last_heartbeat 、または Slave_running の値を取得する SHOW STATUS などのステートメントと同時に STOP SLAVE を発行すると、デッドロックが発生する可能性があった(Bug#16088188、Bug#67545)。

参考:Bug#16088114も参照。

・ レプリケーション : --replicate-*オプション( 「Replication Slave Optionsand Variables」 を参照)を使用すると、場合によって、スレーブでメモリリークが発生する可能性があった(Bug#16056813、Bug#67983)。

・ レプリケーション : バックティック(`)文字が、内部で生成されたSQLステートメントで必ずしも正しく処理されず、場合によってはスレーブでエラーを招く可能性があった(Bug#16084594、Bug#68045)。

参考:このバグは、Bug#14548159およびBug#66550による退化である。

・ レプリケーション : すべてのロールバックで、 gtid_next のセッションレベルの値がスレーブで誤ってリセットされた。つまり、マルチステートメントトランザクションのGTIDが失われ、ER_GTID_NEXT_TYPE_UNDEFINED_GROUPエラーでスレーブが停止する可能性があった。現在は、完全なトランザクションがロールバックされているときか、または autocommit が有効な場合にのみこれが行われる(Bug#16084206)。

・ レプリケーション : GTIDを使用してサーバのプロビジョニングまたはリストアを行うために、インポートされたトランザクションをリストする指定されたGTIDセットを gtid_purged に設定することができる。この操作を行うには、グローバルな gtid_executed および gtid_purged サーバシステム変数が空である必要がある(これは、サーバで生成されたGTIDを無効にしないために行われる)。

エラーメッセージGTID_PURGED can only be set when GTID_EXECUTED is empty は、この要件が満たされていないときに表示されたが、問題の変数の範囲を特定しなかったため、混乱や誤解を招く可能性があった。この問題の発生を防ぐために、現在は、GTID関連の変数について言及するエラーメッセージは、変数について言及するときに変数の範囲を特定する(Bug#16084426、Bug#68038)。

・ レプリケーション : 場合によって、ダンプスレッドが形式記述イベントと一致しないハートビートを送信する可能性があった。この問題の影響の1つとして、バックアップデータディレクトリから新しいサーバをプロビジョニングし、 --gtid-mode=ON を設定して自動位置設定を有効にすると( 「CHANGE MASTER TO Syntax」 を参照)、レプリケーションの開始が失敗し、エラーメッセージRead invalid event from master.... (マスタから無効なイベントを読み込みました)が表示された。また、この問題によりGTIDベースのレプリケーションも失敗する可能性があった。これは、マスタの予期せぬシャットダウン後にイベントがスキップされるためであった(Bug#16051857)。

・ レプリケーション : 場合によって、スレーブがマスタのサーババージョンを認識できないと、スレーブが機能しなくなる可能性があった(Bug#16056365)。

・ レプリケーション : レプリケーションで使用されるテーブルIDのタイプが、マスタでは ulong 、スレーブでは uint として定義されていた。さらに、バイナリログイベントのテーブルIDの最大値は6バイト(281474976710655)である。これらの要因が組み合わさって、以下の問題が引き起こされた。

  • uint よりも大きいIDがテーブルに割り当てられると、スレーブでデータが失われる可能性があった。

  • 281474976710655よりも大きいテーブルIDは、バイナリログに281474976710655として記述された。

  • それにより、同じテーブルIDを持つ2つのテーブルをスレーブが発見すると、スレーブが停止した。

これらの問題を修正するために、現在はマスタとスレーブの両方でIDが ulonglong タイプとして定義される。ただし、0から281474976710655までの範囲に制約される。この値を超えるときは、再び0から開始する(Bug#14801955、Bug#67352)。

・ レプリケーション : リレーログ情報用に使用される内部オブジェクトが、メモリ解放前に部分的にだけ削除されていた(Bug#14677824)。

・ レプリケーション : ダンプスレッドの読み取りイベントループでEOFを検出した直後から新しいバイナリログファイルに変更するかどうかを決定するまでの間に、場合によって、まだ決定が下されていないのに新しいイベントをバイナリログに記述することが可能であった。もしもこのときにログの交換が発生した場合、EOF検出後に発生したイベントが抜けてしまい、データの喪失が起きた。現在はこのような場合、ログの交換が許可される前にすべてのイベントが必ず処理されるための対策が講じられている(Bug#13545447、Bug#67929)。

参考:Bug#16016886も参照。

・ レプリケーション : バイナリログへの書き込み中にディスクがいっぱいになった場合、スペースを手動で解放するまで、サーバがハングする。この後、必要でないときに内部ステータス値が設定されるために、MySQLサーバが失敗する可能性があった。現在はこのような場合、このステータスを設定する代わりに、エラーログに警告が書き込まれる(Bug#11753923、Bug#45449)。

・ Microsoft Windows: 共有メモリモード で、MySQLServerが複数のスレッドから要求を受信したときに、クラッシュする可能性があった(Bug#13934876)。

・ 全文検索のワイルドカードを適切に処理できなかったことにより、サーバが終了する可能性があった(Bug#16446108)。

・ 現在、 InnoDB は、行およびテーブルのロックをスレッドプールプラグインにレポートする。そうしないと、スレッドグループ内でデッドロックが発生する可能性があった(Bug#16448639)。

・ SHOW ENGINE PERFORMANCE_SCHEMA STATUS は、正しいメモリ割り当て値が4GBを超える場合、間違った値をレポートする可能性があった(Bug#16414644)。

・ パフォーマンススキーマステートメントのトークン化オーバーヘッドが削減された(Bug#16382260)。

・ GRANT ステートメントで長いデータベース名が使用されていると、サーバが終了する可能性があった(Bug#16372927)。

・ Linuxで epoll() に関する競合状態が発生すると、スレッドプールプラグインがイベントを見逃す可能性があった。これは、16コアを超えるコア構成のシステムで起きる可能性が最も高かった(Bug#16367483)。

・ SQLハンドラが開かれているときに、プリペアドステートメントで既存のビューの名前を使ってテーブルを作成しようとすると、サーバが終了する可能性があった(Bug#16385711)。

・ デバッグビルドで、パスワード制約のチェックにより、パスワードを更新したステートメントに対して表明が発生する可能性があった(Bug#16289303)。

・ MySQLディストリビューションに含まれているBUILD-CMAKEファイルに、 CMake 情報の正しいURLが更新された(Bug#16328024)。

・ CREATE USER ステートメントが一般的なクエリログに記録され、 old_passwords システム変数が2に設定された場合、Valgrindエラーが発生する可能性があった(Bug#16300620)。

・ サブクエリ内の結合の ON 句にサブクエリが含まれているプリペアドステートメントの実行中に、オプティマイザが冗長なサブクエリ句を削除しようとすると、表明が発生した(Bug#16318585)。

参考:このバグは、Bug#15875919による退化である。

・ join_buffer_size 値が小さすぎると、表明が発生する可能性があった(Bug#16328373)。

・ 一部の集計クエリが、必要以上のメモリを割り当てようとしていた(Bug#16343992)。

・ クエリで、 WHERE 句に XOR 操作が含まれている IN 句にサブクエリが含まれていた場合、間違った結果が返された(Bug#16311231)。

・ デバッグビルドで、 XASTART ステートメントが発行される直前に、ステートメントがautocommitの有効化に失敗した場合、表明が発生する可能性があった(Bug#16341673)。

・ 数値を BIT に変換すると、予期せぬ結果になる可能性があった(Bug#16271540)。

・ 特定の正しい HAVING 句が無効な句として拒否された(Bug#16221433)。

・ XCode4.6でコンパイルするときの警告が修正された。環境で _XOPEN_SOURCE または isoctal マクロがすでに定義済みの状態でコンパイルするときの警告が修正された(Bug#16265300、Bug#60911、Bug#12407384)。

・ LooseScan半結合方針を用いて評価される範囲述語を使用するクエリが重複行を返す可能性があった(Bug#16221623)。

参考:このバグは、Bug#14728469による退化である。

・ アップグレード操作で、.errファイルへのアクセスが不可能であることについて、RPMパッケージで不必要なエラーが生成された(Bug#16235828)。

・ 範囲オプティマイザで、インデックスマージの失敗によりサーバが終了する可能性があった(Bug#16241773)。

・ Booleanモードを使用するフルテキストクエリは、場合によって、検索語が引用符で囲まれているとゼロの結果を返す可能性があった。

  • 引用符で囲まれた語句の前に+記号が付く場合。たとえば、Booleanの+演算子と語句の組み合わせにより、ゼロの結果が返された。

  • where match(content) against('+"required term due to plus sign"' in boolean mode)

  • 引用符で囲まれた語句に何らかのストップワードが含まれていた場合。たとえば、語句の中にストップワードの「the」が含まれていると、クエリがゼロの結果を返した。

  • where match(content) against('"stopword inside the phrase"' in boolean mode)

(Bug#16206253、Bug#68150)

・ デバッグビルドで、 const テーブルを使用する結合に適用可能なインデックスの計算が間違っていたことにより、サーバが終了する可能性があった(Bug#16165832)。

・ 範囲オプティマイザのバグにより、インデックス結合ユニオンの条件計算が正しく行われない場合があった。その結果、行の欠損が引き起こされる可能性があった(Bug#16164031、Bug#68194、Bug#16229746)。

・ パフォーマンススキーマが、 threads テーブルの PROCESSLIST_INFO カラムについて間違った値を返す可能性があった(Bug#16215165)。

・ NULL 選択に対して範囲オプティマイザを起動すると、サーバが終了した(Bug#16192219)。

・ mysql_configlibs が間違った出力を表示した(Bug#16200717)。

・ CREATE TABLE(... col_name TIMESTAMP DEFAULT CURRENT_TIMESTAMP ...) ...SELECT ステートメントで、 SELECT が TIMESTAMP カラムの値を提供しなかった場合、このカラムは現在のタイムスタンプではなく「0000-00-0000:00:00」に設定された(Bug#16163936)。

・ yaSSLは、適切なパディングチェックを実行せず、プレーンテキストの最終バイトのみ検査し、それにより削除するバイト数を決定していた(Bug#16218104)。

・ プリペアドステートメントで GROUP BY WITHROLLUP を使用すると、サーバが終了する可能性があった(Bug#16163596)。

・ SELECT 内で、 HAVING 句に関数呼び出しが含まれていて、この句自体に選択された式へのエイリアスが含まれていた場合、サーバが終了する可能性があった( Bug#16165981 )。

・ slave_rows_search_algorithms システム変数に不適切な値を設定すると、サーバが終了する可能性があった(Bug#16074161)。

・ MacOSXおよびWindows上で、ディレクトリ名処理によりスタックオーバーフローが発生する可能性があった(Bug#16066243)。

・ ステートメントベースのバイナリログを使用している場合、 TEMPORARY InnoDB テーブルを削除すると、セグメンテーションエラーが発生する可能性があった(Bug#16076275)。

・ デバッグビルドで、バイナリログを無効にした状態でサーバを起動した場合、ストアドプロシージャ内から SHOW RELAYLOG EVENTS を実行すると表明が発生した(Bug#16043173)。

・ クエリ解析で、いくつかの構文エラーによりメモリリークが発生した(Bug#16040022)。

・ スレッドプールプラグインを有効にした状態で接続を大量に行うと、Valgrindパニックを引き起こすか、またはクライアントが接続不可能になる可能性があった(Bug#16088658、Bug#16196591)。

・ 不正な形式のクエリに対して、サーバが EXPLAIN FORMAT=JSON を不適切に実行した(Bug#16078557)。

・ スレーブのワーカスレッドで、パフォーマンススキーマのインストルメント機能が欠けていた(Bug#16083949)。

・ 初期の test データベースには、 DROP DATABASE を機能させないようにするdummy.bakファイルが含まれていた。現在は、このファイルは含まれていない。また、現在は以下の行を含む db.opt ファイルが含まれている。

default-character-set=latin1

default-collation=latin1_swedish_ci

(Bug#16062056)

・ システム変数に DEFAULT を設定すると、サーバが終了する可能性があった(Bug#16044655)。

・ SET PASSWORD および GRANT ... IDENTIFIED BY は、mysql.userテーブルの外部に保存されているパスワードにアクセスする認証プラグインを使用して認証されるユーザのパスワードには効果がない。しかし、このようなユーザのパスワードを変更しようとしても警告が表示されなかったため、パスワードが変更されていないのに変更されたような印象を与えていた。現在は、変更が無視されたことを示す ER_SET_PASSWORD_AUTH_PLUGIN 警告がMySQLによって発行される(Bug#16072004)。

・ デバッグビルドの場合、厳格SQLモードでキーの最大長制限に違反するInnoDBテーブルを作成すると、サーバが終了した(Bug#16035659)。

・ ストアド関数とユーザ変数を特定の組み合わせで使用して PREPARE ステートメントを発行すると、サーバが終了した(Bug#16056537)。

・ テーブル数が32ちょうどで、 HAVING 句を伴う結合では、空の結果が返されていた(Bug#15972635)。

・ mysys ライブラリの文字列書式設定ルーチンが幅指定子の処理を誤る可能性があった(Bug#15960005)。

・ --character-set-server オプションが、接続文字セットシステム変数を、許可されていない ucs2 などの値に設定する可能性があった(Bug#15985752)。

・ シャットダウン時に、サーバが初期化されていないミューテックスをロックしようとする可能性があった(Bug#16016493)。

・ --default-authentication-pluginオプションは、無効なプラグイン値を許可し、指定されたプラグインに適する値に old_passwords システム変数を設定しない場合があった(Bug#16014394)。

・ ある状況下では、古い(4.1以前の)ハッシュ形式を使用してパスワードをサーバに送信することを mysql--secure-auth が許可していた(Bug#15977433)。

・ インデックスの条件プッシュダウンを有効にすると、プッシュダウン条件の使用インデックスにカラムが含まれていないクエリは、遅くなる可能性があった(Bug#15896009)。

・ テーブル作成操作により、パフォーマンススキーマの file_instances テーブルにエントリが追加されたが、テーブル削除操作でこれらのエントリが削除されない場合があった(Bug#15927620)。

・ 特殊なケースだが、オプティマイザがインデックスをクエリ処理に適するものとみなさず、次善の実行で誤った EXPLAIN 出力を生成する可能性があった(Bug#15849135、Bug#16094171)。

・ EXISTS/IN/ALL/ANY サブクエリを伴うクエリで、 ORDER BY 句が、選択リストに載っていない BLOB タイプの外部カラムで順序付けを行うと、表明が発生した(Bug#15875919)。

参考:Bug#14728142も参照。

・ FULLTEXT インデックスを含む InnoDB テーブルを作成する場合、テーブル名に英数字以外の文字が含まれていると、重大なエラーが発生する可能性があった(Bug#14835178、Bug#16036699)。

・ クライアント競合が高い間にクエリキャッシュを有効にすると、サーバが終了する可能性があった(Bug#14727815)。

・ サーバがユーザ接続で MAX_CONNECTIONS_PER_HOUR 限度を守らないことがあった(Bug#14627287)。

・ 集計関数を含む IN サブクエリを EXISTS サブクエリに書き換えた後に、オプティマイザが間違った結果を返す可能性があった(Bug#14586710)。

・ クライアントプログラムとMySQLサーバとの接続が切れたときか、またはクライアントが mysql_stmt_prepare() を実行した後にサーバがシャットダウンを開始した場合、次に mysql_stmt_prepare() を実行するときにエラーが返されるが(予定どおり)、その次の mysql_stmt_execute() 呼び出しでクライアントがクラッシュする(Bug#14553380)。

・ 以前は、複数の--login-pathオプションを指定した場合、 mysql_config_editor は最後の1つ以外のすべてのオプションを無視した。現在は、複数の--login-pathオプションを指定すると、エラーが発生する(Bug#14551712)。

・ 匿名ユーザに対する SET PASSWORD は、正しく機能しなかった(Bug#14561102)。

・ Geometry カラムの UNION として定義されたビューで SHOW COLUMNS を実行すると、サーバが終了する可能性があった(Bug#14362617)。

・ sha256_password_private_key_path および sha256_password_public_key_path システム変数は、 sha256_password 認証プラグイン用のキーファイルを指定するが、サーバがキーファイルの有効性を正しくチェックできなかった。現在は、いずれかのキーファイルが無効な場合、サーバがログにエラーを記録して終了する(Bug#14360513)。

・ SET var_name =VALUES( col_name ) によってサーバが終了する可能性があった。 SET コンテキストにはカラム名がなく、ステートメントが ER_BAD_FIELD_ERROR を返すため、現在はこの構文が禁止されている(Bug#14211565)。

・ クライアント/サーバプロトコルの COM_CHANGE_USER コマンドが、コマンドパケット内の文字セット番号を正しく使用しなかったため、パケット内の別の値を間違って文字セット変換した(Bug#14163155)。

・ ロケールおよび非常に大きい数値を伴う FORMAT() 関数を呼び出すと、サーバが終了する可能性があった(Bug#14040155)。

・ yaSSLが有効なサーバのSSL証明書を拒否する場合があった(Bug#13777928)。

・以下のようなプラグイン関連の特定の条件下で、ユーザアカウントが使用できなくなる可能性がある。

・アカウントがロードされていない認証プラグインを必要とする。

・ アカウントが sha256_password 認証プラグインを必要とするが、サーバはこのプラグインに必要なSSLやRSAを有効にしない状態で起動された。

現在は、デフォルトでサーバがこれらの条件をチェックし、使用できないアカウントについては警告を表示する。このチェックによりサーバの初期化および FLUSH PRIVILEGES が遅くなるため、新しい validate_user_plugins システム変数を用いたチェックは任意で行うことができる。この変数はデフォルトで有効になっているが、追加チェックが必要なければ起動時にこれを無効化し、パフォーマンスの低下を回避できる(Bug#13010061、Bug#14506305)。

・ 不明な時間帯指定を CONVERT_TZ() に受け渡すと、メモリリークが発生した(Bug#12347040)。

・ MySQLディストリビューションのDocsディレクトリ内にあった旧式のlinuxthreads.txtおよびglibc-2.2.5.patchファイルが削除された(Bug#11766326)。

・ mysql_install_db は、ステートメントで権限テーブルに書き込まれたホスト名内の 「 _ 」 をエスケープしなかった(Bug#11746817)。

・ mysqld_safe で移植不能な -e テスト構造を使用していた(Bug#67976、Bug#16046140)。

・ メモリ不足エラーの処理中にメモリ不足の状況が発生し、エラー処理の反復が発生する可能性があった(Bug#49514、Bug#11757464)。

・ オプティマイザが、ルースインデックススキャンによるアクセスが適さない一部のクエリに対して、このアクセス方法を使用した(Bug#42785、Bug#11751794)。

・ ある文字セットと照合を持つビューに異なる文字セットと照合が定義されているビューがダンプファイルに含まれていた場合、このダンプファイルをリストアしようとすると、illegalmixofcollationsエラーが発生して失敗した(Bug#65382、Bug#14117025)。

・ ユーザ変数が引数として提供され、複数の行で操作が実行されると、 REPLACE() 関数の結果が正しくならなかった(Bug#49271、Bug#11757250)。

・ UNION 型変換で、符号なし値を符号付き値に間違って変換する可能性があった(Bug#49003、Bug#11757005)。

・ BLOB カラムで UNION ALL を実行すると、結果が正しくならない可能性があった(Bug#50136、Bug#11758009)。

・ メモリが少ない状況でビューにアクセスすると、デバッグアサーションが発生する可能性があった(Bug#39307、Bug#11749556)。

・ IN() 句に多くの値を持つクエリは、デバッグビルド以外ではデバッグコードが含まれるため遅かった(Bug#68046、Bug#16078212)。

参考:Bug#58731、Bug#11765737を参照。

・ max_connections を現在開かれている接続の数よりも小さい値に設定すると、サーバが終了した(Bug#44100、Bug#11752803)。

・ ストレージエンジンを呼び出すときにサーバによって実行されるテーブルI/Oが、パフォーマンススキーマによって収集される統計情報から欠落している場合があった(Bug#68180、Bug#16222630)。

・ デバッグビルドで、 SELECT ... FROMDUAL がネストするサブクエリを含むクエリにより、表明が発生する場合があった(Bug#60305、Bug#11827369)。

・ 非空間インデックスは、空間カラムについては完全一致検索のみサポートするが、場合によって、オプティマイザが レンジ アクセスを誤って使用し、結果が正しくならない場合があった(Bug#67889、Bug#15993693)。

・ バンドルされている libedit ライブラリを使用して mysql がビルドされた場合、実行時に異なる動的なバージョンにリンクされるのを防ぐために、ライブラリが静的なコードとしてビルドされる。動的なリンクにより、互換性のない異なるバージョンが使用され、セグメンテーションエラーが引き起こされる可能性があった(Bug#68231、Bug#16296509)。

・ 現在は、 --log-slow-admin-statements および --log-slow-slave-statements コマンドオプションは実行時に log_slow_admin_statements および log_slow_slave_statements システム変数として表示される。これらの値は、 SHOW VARIABLES を用いて調べることができる。これらの変数は動的であるため、実行時に値を設定できる(実際は、オプションがシステム変数によって 置き換えられた が、システム変数はサーバ起動時に設定可能であるため、オプションの機能は失われない)(Bug#59860、Bug#11766693)。

・ 引数に6桁を超える小数秒が指定された場合、 SEC_TO_TIME() が、実行すべき四捨五入ではなく切り捨てを行った(Bug#68061、Bug#16093024)。

・ WITH_LIBWRAP を有効にして構成された場合、MySQLがビルドに失敗した(Bug#67018、Bug#16342793)。

・ --datadir オプションを使用せずにサーバが起動された場合、 datadir システム変数に対して SHOW VARIABLES が空の値を表示する可能性があった(Bug#60995、Bug#12546953)。

・ -DWITH_SSL=/path/to/openssl を使用して構成を行うと、間違った libcrypto が選択されてリンクエラーになった(Bug#68277、Bug#16284051)。

・ テーブルのコピーを作成するのではなく変更がインプレースで行われた場合、 ALTER TABLE tbl_name ADD COLUMN col_name TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP が現在のタイムスタンプではなく 0000-00-0000:00:00 を挿入した(Bug#68040、Bug#16076089)。

・ --skip-grant-tables を使用してサーバが起動された場合、 ALTER USER ... PASSWORD EXPIRE によりサーバが終了した(Bug#68300、Bug#16295905)。

・ CMake は、MySQLに必要な特定の関数がシステムの zlib にあるかどうかをチェックしなかったため、ビルドエラーが発生した。現在はチェックを行い、関数が見つからない場合、バンドルされた zlib にフォールバックする(Bug#65856、Bug#14300733)。

・ mysql_install_db は、Solaris10の疎ルートゾーンで機能しなかった(Bug#68117、Bug#16197860)。

・ EXPLAIN DELETE および EXPLAIN UPDATE で、 possible_keys カラムは、適切なインデックスだけでなくすべてのインデックスをリストした(Bug#67830、Bug#15972078)。

・ mysql_install_db のPerlバージョンは、一部のエラーメッセージを誤って処理した(Bug#68118、Bug#16197542)。

・ ORDER BY および LIMIT と組み合わせて SQL_CALC_FOUND_ROWS の処理を行うと、 FOUND_ROWS() が誤った結果になる可能性があった(Bug#68458、Bug#16383173)。

・ IN サブクエリの後に ORDER BY 句を追加すると、重複行が返される可能性があった(Bug#68330、Bug#16308085)。

・ 結果セットで、ある行に対して INET6_NTOA() または INET6_ATON() が NULL を返した場合、次の行も NULL を返した(Bug#68454、Bug#16373973)。

・ SELECT リストに集計済みのグループ化されていない外部クエリと集計済みのグループ化されていないサブクエリが含まれているステートメントは、間違った結果を返す可能性があった(Bug#68372、Bug#16325175)。

・ explicit_defaults_for_timestamp を有効にした状態で TIMESTAMP NOT NULL カラムに NULL を挿入すると、現在のタイムスタンプを挿入する代わりに、現在はエラーが生成される(他の NOT NULL データタイプについては、すでにそうなっている)(Bug#68472、Bug#16394472)。

  • 免責条項
  • |  サイト利用規定
  • |  個人情報保護方針
  • |  個人情報の取り扱いについて
  • |  情報セキュリティ対策についての宣言文
  • |  
  • |  アクセスマップ
© Copyright Nomura Research Institute, Ltd. All rights reserved. オープンソースはOpenStandia