MySQL

翻訳 MySQL 5.7 リリースノート

MYSQL 5.7 リリースノート

dev.mysql.com Doc Search:

MySQL 5.7.27の変更(2019-07-22、一般提供)

Keyring ノート

  • keyring_awsプラグインは、最新のAWS SDKを使用するように更新されているため、OpenSSL 1.1で動作します。

梱包ノート

  • システムのcurlライブラリにリンクするのではなく、curlを含むバイナリパッケージがcurl 7.64.0を使用するようになりました。 (バグ#29357198)

Xプラグインに関する注意

  • Windowsの場合、Xプラグインは不必要または不十分な情報であるいくつかのメッセージをログに記録しました。 メッセージは適切に削除または改善されています。 (バグ#27839153)

追加または変更された機能

  • Microsoft Windows:新しい警告メッセージは、WindowsでMySQL名前付きパイプを使用して行われた接続が、コネクタが名前付きパイプで要求できる権限を制限したことをDBAに通知するようになりました。

    以前は、named_pipe_full_access_groupシステム変数は、デフォルトで組み込みのWindows Everyoneグループ(SID S-1-1-0)にマップされる値に設定されていました。 ただし、このグループは理想的ではなく、MySQL名前付きパイプでより少ない権限をリクエストできないコネクタのメンバーシップを制限するグループに置き換える必要があります。

    named_pipe_full_access_groupに割り当てられた文字列値が ‘* everyone *’(またはWindowsシステム言語で同等のもの)であり、名前付きパイプが有効になっている場合、新しい警告は起動時にエラーログに書き込まれます。 さらに、システム変数が実行時にEveryoneグループにリセットされると、警告がエラーログに書き込まれ、クライアントに通知されます。

修正されたバグ

  • InnoDB:rw-lock実装のメモリバリアが不十分なため、ARMでデッドロックが発生しました。
  • 貢献してくれたArm TechnologyのYibo Caiに感謝します。 (バグ#29508001、バグ#94699)
  • InnoDB:MySQLサーバーの実行中に手動でシステム時間を変更すると、ページクリーナーのスレッド遅延が発生しました。 (バグ#29138644、バグ#93708)
  • InnoDB:ログの適用中、OPTIMIZE TABLE操作の後、InnoDBは仮想列インデックスの更新を確認する前に仮想列を生成しませんでした。バグ#28834208)
  • InnoDB:生成された仮想BLOBカラムを含むINSERT操作の結果、セカンダリインデックスが不正な値で更新されていました。バグ#28652826)
  • InnoDB:フルテキストキャッシュサイズがフルテキストキャッシュサイズの制限を超えた場合、データの同期時に取得されたフルテキストキャッシュロックは解放されませんでした。バグ#25289359)
  • InnoDB:同時挿入操作の実行中に異なるauto_increment_increment値を使用するクライアントセッションは、重複キーエラーを引き起こす可能性がありました。 (バグ#15851528、バグ#67526)

    参照:元に戻されたパッチ:バグ#14049391、バグ#65225。
  • Partitioning:ALTER TABLE … EXCHANGE PARTITIONが失敗しました。パーティション化されたテーブルに異なる行フォーマットを使用するパーティションがある場合、パーティションとテーブル間で属性「ROW_FORMAT」が一致しません。 分割テーブル。 バグ#28687608)
  • レプリケーション:グループメンバーの数と自動インクリメント間隔の不一致に対して発行されるエラーメッセージは、auto_increment_incrementシステム変数ではなく、group_replication_auto_increment_incrementシステム変数を誤って参照していました。 auto_increment_incrementの値は、グループレプリケーションの開始時にgroup_replication_auto_increment_incrementで指定された値に変更されますが、auto_increment_incrementとauto_increment_offsetにデフォルト値があり、MySQL 8.0からはマルチプライマリモードでのみ変更されます。 auto_increment_incrementの値は常にエラーメッセージに対してチェックされた値でしたが、正確なシステム変数名を指定するように修正されました。バグ#29542425)
  • レプリケーション:1つのMySQLサーバーインスタンスによって生成されたイベントが別のインスタンスのバイナリログに書き込まれると、2番目のサーバーは最初のサーバーがそれ自体と同じ数のバイナリログイベントタイプをサポートすると暗黙的に想定しました。そうでない場合、イベントヘッダーは正しく処理されませんでした。この問題は修正されました。 Facebookに貢献してくれてありがとう。 (バグ#29417234、バグ#94500)
  • レプリケーション:グループレプリケーションでは、メンバーを結合すると、同じバージョンのメンバーがグループ内にすでに存在していても、メンバーが最も高いバージョンのメンバーを含む他のすべてのメンバーに対してチェックを行ったため、既存のレプリケーショングループと互換性がないと誤って識別される可能性があります。参加しているメンバーも、互換性チェックに独自のバージョンを含めました。現在、参加しているメンバーは、最も低いバージョンの既存のグループメンバーと自分自身を比較するだけで、自分のバージョンはカウントしません。 (バグ#29390946、バグ#94429)
  • レプリケーション:バイナリログファイルが初期化される前にFLUSH LOGSステートメントが発行された場合、ステートメントはバイナリログローテーションイベントを未初期化ファイルに書き込もうとしました。サーバーは、バイナリログファイルが利用可能であることを最初に確認します。バグ#29201665)
  • レプリケーション:サーバーの再起動後にMEMORYテーブルがマスターで暗黙的に削除されると、マスターもDELETEステートメントをバイナリログに書き込み、スレーブもテーブルを空にします。この生成されたイベントには、バイナリログにコメントが含まれているため、DELETEステートメントの理由を簡単に特定できます。貢献してくれたDanienl van Eedenに感謝します。 (バグ#29157796、バグ#93771)
  • レプリケーション:ステートメントベースのレプリケーションが使用されている場合、UPDATEオペレーションとCOMMITオペレーションの間に何もしないトランザクションがあった時点でサーバーのsuper_read_onlyがONに設定されていると、トランザクションはバイナリログに書き込まれ、GTIDが割り当てられました。この状況では、トランザクションがブロックされます。 MySQL 8.0以降では、トランザクションの進行中にsuper_read_onlyの値を変更することはできません。 (バグ#29009092、バグ#93440)
  • レプリケーション:グループレプリケーションのグループ通信エンジン(Paxosの変形であるXCom)は、メモリ不足エラーを適切な方法で処理しませんでした。メッセージのペイロードのコピーを作成するためにメモリを割り当てることができなかった場合、エラーがログに記録されましたが、メッセージはnullペイロードで送信されました。受信メンバーのグループ通信システム(GCS)はメッセージを空として破棄し、受信メンバーのXComインスタンスはこのアクションを受け入れて再試行しなかったため、メッセージは実質的にスキップされました。これにより、受信メンバーに設定されたGTIDがグループから逸脱し、レプリケーションエラーが発生しました。メモリ不足エラーが発生した場合、XComは正常に終了するため、この状況は発生しません。バグ#28702320)
  • レプリケーション:バイナリログのクエリログイベントで、DROP TABLEおよびDELETEステートメントの実行に使用されるスレッドIDが誤って識別されたか、まったく識別されませんでした。一時テーブルが関与するマルチスレッドレプリケーションスレーブでは(セッション固有であるため、正しいスレッドIDが必要です)、この省略により、mysqlbinlogを使用してポイントインタイムリカバリのバイナリログを再生するときにエラーが発生しました。スレッドIDが正しく設定されるようになりました。 (バグ#28642318、バグ#92398)
  • レプリケーション:スレーブサーバーがマスターステータスと接続情報をテーブル(master_info_repository = TABLE)に記録するとき(これはMySQL 8.0のデフォルトです)、サーバーがスーパー読み取り専用モードの場合、mysql.slave_master_infoテーブルはシャットダウン時に更新されませんでした( super_read_only = ON)。現時点ではエラーログにエラーは書き込まれていませんが、マスターログファイルとマスターログの位置情報が古いため、サーバーの起動後にレプリケーションが失敗しました。シャットダウン時にマスター情報ログを更新するスレッドは、他のレプリケーションスレッドと同様に読み取り専用チェックから除外されるため、サーバーがスーパー読み取り専用モードであってもテーブルを更新できます。シャットダウン中のスレーブのエラー処理も改善され、スレーブステータスログへの書き込みに失敗すると、エラーログにエラーが記録されます。 (バグ#27675107、バグ#89987)
  • ストアドプログラムのローカルオブジェクトのソート中に、過度に厳密なアサーションが発生する可能性があります。 (バグ#29759547、バグ#95062)
  • RPMパッケージからインストールすると、不正な権限を持つエラーログが生成される可能性があります。バグ#29702462)
  • 監査ログの暗号化を有効にすると、サーバーが終了する可能性があります。バグ#29549327)
  • DebianおよびUbuntuでは、ネイティブMySQLパッケージからアップグレードした後、MySQLパッケージはmysql.serviceを有効にしませんでした。バグ#29435592)
  • エラーが発生したときにサーバーが共有メモリ接続を適切に閉じなかったため、予期しないサーバー動作が発生する可能性がありました。バグ#29435426)
  • MySQLインストーラーは、開発コンポーネントが選択されていない場合、OpenSSL DLLの依存関係をインストールしませんでした。 (バグ#29423421、バグ#94168、バグ#30199579、バグ#96573)
  • パーサーは、特定の複数ステートメントクエリのメモリをリークする可能性があります。バグ#29419820)
  • CREATE USERおよびALTER USERは、IDENTIFIED WITH auth_plugin AS ‘hash_string’構文で使用された場合、ハッシュされた認証文字列の有効性をチェックしませんでした。バグ#29395944)
  • VARCHARカラムにインデックスが含まれ、MySQL 5.7.23より前に作成されたInnoDBテーブルの場合、MySQL 5.7.23以降にアップグレードした後、テーブルの再構築を使用して、本来実行する必要があるいくつかの単純なALTER TABLEステートメントが実行されました。 (バグ#29375764、バグ#94383)
  • HANDLERステートメントは、列が生成されたテーブルでは常に正しく機能しませんでした。バグ#29300049)
  • クライアント/サーバープロトコルのセッション追跡情報が誤って処理される可能性があります。バグ#29297652)
  • PAD_CHAR_TO_FULL_LENGTH SQLモードを有効にすると、警告またはエラーが報告されずにパスワードの変更が失敗しました。バグ#29287785)
  • audit_logプラグインは、UNINSTALL PLUGIN audit_logステートメントをログに記録しませんでした。バグ#29248047)
  • audit_logフィルタリング操作はメモリをリークする可能性があります。バグ#29201747)
  • 列に外部キー関係のベース列がある場合、仮想生成列で定義されたインデックスの更新に失敗する場合がありました。 (バグ#29127203、バグ#93670)
  • 一部のパフォーマンススキーマテーブルを削除する権限が誤ってチェックされました。バグ#29010031)
  • ORDER BYを含む派生テーブルを使用するクエリは、常に正しく処理されませんでした。バグ#28942965)
  • 基本列は、生成された列による索引のみのアクセスから除外されませんでした。バグ#28652733)

    参照:参照:バグ#29664369。この問題は、バグ#23169112のリグレッションです。
  • スレッドプロセスティック時間が最大許容値を超えると、スレッドプールグループがブロックされる可能性があります。ティック時間はより大きなデータ型を使用して、より大きな値を許可するようになりました。バグ#28072609)
  • MySQLはOpenSSLセッションチケットをサポートしていませんが、SSL_OP_NO_TICKETフラグを設定してOpenSSLに通知していません。フラグが設定されました。バグ#27655493)
  • audit_nullプラグインは、nullイベントレコードを適切にチェックしませんでした。バグ#27638290)
  • 特定の場合に、UpdateXML()が常にメモリを適切に解放するとは限りませんでした。バグ#27312862)
  • mysql.pluginシステムテーブルの名前列に空の値があると、起動中にサーバーが終了しました。バグ#27302459)
  • thread_poolプラグインを有効にすると、パフォーマンススキーマのstatus_by_threadテーブルにデータが含まれません。バグ#25933891)
  • INSTALL PLUGINステートメントの共有ライブラリ名に無効なUTF-8文字が含まれていると、サーバーがハングしました(またはデバッグビルドでアサーションが発生しました)。 (バグ#14653594、バグ#23080148、バグ#27167197)
  • 異なる準結合ネストの内部テーブルがマテリアライズ中にインターリーブされたため、異なるクエリプランを使用した場合、同じクエリに対して異なる結果になる可能性がありました。これが発生しないようにするために、このようなインターリーブを防ぐためのチェックが追加されています。 (バグ#92809、バグ#28835179)
  • TIMESTAMP列でのGROUP BYを含むクエリの結果、キー(ER_DUP_ENTRY)のエントリが重複しました。この問題は、タイムゾーンの特定の設定を使用してTIMESTAMP値がテーブルに挿入され、タイムゾーン設定が変更された後にこれらの値がフェッチされたため、挿入されたTIMESTAMP値の少なくとも一部が、時間は、新しいタイムゾーンで標準から夏時間(DST)に変更されました。その間、同じTIMESTAMP値が2回存在する可能性があります。現在、サーバーがエラーDUPLICATE ENTRY FOR KEY ‘group_key’を返す場合、グループ化にTIMESTAMP列が含まれる場合、代わりにDSTを持つタイムゾーンのグループ化が時間的でないというエラーが発生します。このクエリをUTCに切り替えることを検討してください。

    さらに、explicit_defaults_for_timestampをONに設定し、サーバーSQLモードの一部としてMODE_NO_ZERO_IN_DATE、MODE_NO_ZERO_DATE、またはMODE_INVALID_DATESの1つ以上を設定して、この問題を回避することをお勧めします。 (バグ#90398、バグ#27970159)
MySQL
MySQL

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Scroll to top