![]() |
![]() |
MySQL 5.1.35 リリースノート (日本語翻訳)
Windowsの場合、このリリースのMySQLでは以下の2つの問題が未解決であることがわかっている。
・
.msi
インストーラは、最初の構成試行時に既存のrootパスワードを検出しない。これを回避するには、MySQLのインストールと構成を通常どおり行うが、セキュリティの変更はすべてスキップする(構成ウィザードのセキュリティ画面には、この操作を可能にするチェックボックスがある)。次に、以下の設定をチェックする。
n古いrootパスワードとセキュリティ設定に問題がない場合は、作業終了となり、MySQLの使用に移ることができる。
nそれ以外の場合は、ウィザードを使用して再構成し、その2回目の構成試行で任意の変更を行う。ウィザードは既存のrootパスワードの入力を正しく要求し、変更を行うことを許可する。
この問題は、今後のリリースで修正するために Bug#45200 として提起されている。
・Windows構成ウィザードでは、再構成の操作中に
InnoDB
設定を変更できる。アップグレードの場合は、これによって問題が生じる可能性がある。これを回避するには、以下のいずれかの方法を使用する。
nInnoDB設定を変更しない
n古いInnoDBロケーションから新しいInnoDBロケーションにファイルをコピーする
この問題は、今後のリリースで修正するために Bug#45201 として提起されている。
修正されたバグ:
・ 重要な変更 : レプリケーション : STOPSLAVE のトランザクショナル動作が変更されている。以前はトランザクション内部であっても直ちに有効になっていたが、現在は、レプリケーションイベントグループの実行が終了するまで(レプリケーションイベントグループが存在する場合)、あるいはユーザが KILLQUERY または KILLCONNECTION ステートメントを発行するまで待機するようになった。
非トランザクショナルスレーブがマスタ上でトランザクションを複製している間にレプリケーションが停止されると発生する問題を解決するために、この変更が行われた(いずれかのエンジンが非トランザクショナルの場合は、混合エンジントランザクションをロールバックできなかった。つまり、スレーブは、 STOPSLAVE によって中断されたトランザクションを安全に再適用することができなかった)( Bug#319 、 Bug#38205 )。
Bug#43217 も参照。
・
パーティショニング
:
値が
MAXVALUE
以外の
PARTITION...VALUESLESSTHAN(
値
)
値に等しい場合、対応するパーティションが取り除かれなかった(
Bug#42944
)。
・ レプリケーション : RESETSLAVE の実行中に無関係のエラーが発生すると、スレーブがクラッシュする可能性があった( Bug#44179 )。
・
レプリケーション
:
行ベースのログ形式を使用すると、
--slave-skip-errors
オプションが無効になった(
Bug#39393
)。
・ レプリケーション : 以下のエラーが正しくレポートされなかった。
nスレーブスレッド初期化中の障害
nリレーログ位置を初期化している間の障害(スレーブスレッドの開始直後)
n
--init_slave
オプションで渡されたクエリを処理している間の障害
現在は、 SHOWSLAVESTATUS の出力で上記タイプの障害に関する情報を確認できるようになっている( Bug#38197 )。
・ レプリケーション :DDL ステートメントを実行したスレッドを、そのスレッドが binlogイベントを書き込む前に 強制終了すると、 binlogイベントのエラーコードがER_SERVER_SHUTDOWNまたはER_QUERY_INTERRUPTEDに誤って設定されたため、レプリケーションが失敗した( Bug#37145 )。
・ レプリケーション : バイナリログでは、サブクエリ内で使用されたカラムエイリアスが無視された( Bug#35515 )。
・ DECODE() 、 ENCRYPT() 、および FIND_IN_SET() 関数に対するValgrind警告が修正された( Bug#44358 、 Bug#44365 、 Bug#44367 )。
・Windowsでは、
win/Makefile.am
内に
build-vs9.bat
および
build-vs9_x64.bat
のエントリがなかった(
Bug#44353
)。
・サブクエリ内の
GROUPBY
句に対する行のファイルソート中に
JOIN_TAB::select
の不完全なクリーンアップを行うと、サーバがクラッシュした(
Bug#44290
)。
・正しい記述文字列を持っていないロックタイプがあったため、 mysqladmindebug から不要な出力が生成された( Bug#44164 )。
・
INFORMATION_SCHEMA
テーブルで
HANDLER
ステートメントを使用すると、サーバがクラッシュした。現在は、
INFORMATION_SCHEMA
テーブルでは
HANDLER
が禁止されている(
Bug#44151
)。
・ストアドプロシージャ内から
SHOWTABLESTATUS
を呼び出すと、
Packetsoutoforder
というエラーが発生する可能性があった(
Bug#43962
)。
・
myisamchk
は、負の
Maxkeyfilelength
値を表示する可能性があった(
Bug#43950
)。
・64ビットのシステムでは、4GBより大きい
key_buffer_size
値を使用すると、
MyISAM
インデックスが壊れる可能性があった(
Bug#43932
)。
・
mysqld_multi
は、誤って
mysqld_safe
に
--no-defaults
を渡した(
Bug#43876
)。
・ SHOWVARIABLES は、 slave_skip_errors の値を正しく表示しなかった( Bug#43835 )。
・Windowsでは、浮動小数点値を最大長が変換済みの浮動小数点値の長さよりも短い CHAR カラムに挿入しようとすると、サーバがクラッシュした( Bug#43833 )。
・
MyISAM
テーブルインデックスを正しく初期化しないと、不正なクエリ結果が生成される可能性があった(
Bug#43737
)。
・
libmysqld
は、再初期化するとクラッシュした(
Bug#43706
、
Bug#44091
)。
・
InnoDB
は、インデックスカーディナリティを計算するために乱数を使用してインデックスへのダイブを生成する。ただし、特定の状況下では、このアルゴリズムは乱数を生成しなかったため、
ANALYZETABLE
はカーディナリティの見積もりを正しく更新しなかった。どのアルゴリズムを使用するのかを制御する
innodb_use_legacy_cardinality_algorithm
システム変数と共に、ランダム化プロパティが改善された新しいアルゴリズムが導入されている。この変数のデフォルト値は1(ON)で、この場合、元のアルゴリズムを使用して既存のアプリケーションとの互換性が維持される。この変数を0(OFF)に設定すると、ランダム性が改善された新しいアルゴリズムを使用できる(
Bug#43660
)。
・浮動小数点数の UNION は、不必要な丸めを行った( Bug#43432 )。
・データベースにビューが含まれていると、 ALTERDATABASE...UPGRADEDATADIRECTORYNAME が失敗した( Bug#43385 )。
・ある特定のステートメントは、テーブルを開いてから、間近に予期されるグローバル読み取りロックを待つ可能性があるが、その際、そのグローバル読み取りロックが待ち受けているテーブルを保持しているかどうかを確認しないため、ハングが発生した。影響を受けたステートメントは、 SELECT...FORUPDATE 、 LOCKTABLES...WRITE 、 TRUNCATETABLE 、および LOADDATAINFILE である( Bug#43230 )。
・
ExtractValue()
などのXML関数を1つのクエリで複数回使用すると、誤った結果が生成される可能性があった(
Bug#43183
)。
Bug#43937 も参照。
・全文プリフィックス検索を行うと、接続がハングし、CPU消費率が100%になる可能性があった( Bug#42907 )。
・
InnoDB
には、文字セット
mutexについて過度の競合があった(
Bug#42649
)。
・安全でないステートメントについて警告メッセージがエラーメッセージに不正に昇格されたため、サーバがクラッシュした( Bug#42640 )。
・ REPAIRTABLE によってサポートされないストレージエンジンの場合、 CHECKTABLE は破損したテーブルに対する REPAIRTABLE の使用を推奨した。現在、 CHECKTABLE はユーザがテーブルをダンプして再ロードすることを推奨するようになっている( Bug#42563 )。
・ myisampack ユーティリティでテーブルを圧縮すると、サーバはそのテーブルを開くときにValgrind警告を生成した( Bug#41541 )。
・
DELAY_KEY_WRITE
が有効になっている
MyISAM
テーブルの場合、サーバを強制終了すると、そのテーブルにクラッシュマークが付けられることなくインデックスファイルが破損する可能性があった(
Bug#41330
)。
・
MyISAM
テーブルにインデックスがある場合、そのテーブルに対する
INSERT...SELECT
ステートメントを強制終了すると、テーブルが破損する可能性があった(
Bug#40827
)。
・外部キー制約に関係する複数テーブルの DELETEIGNORE ステートメントは、表明違反を発生した( Bug#40127 )。
・複数テーブルの UPDATE ステートメントは、トリガを正しく起動しなかった( Bug#39953 )。
・データベース権限を削除するための mysql_setpermission 操作を行うと、代わりにグローバル権限が削除された( Bug#39852 )。
・C形式のコメントを含んだストアドルーチンのダンプと再ロードができなかった( Bug#39559 )。
・セカンダリインデックスを介した
UPDATE
または
DELETE
では、
InnoDB
はカーソル位置を保存しなかった。これにより、
InnoDB
は、不一致レコードをアンロックしようとしたときに半一貫的な読み取りでクラッシュした(
Bug#39320
)。
・ セクション11.13.4.2.3「CreatingGeometryValuesUsingMySQL-SpecificFunctions」 にリストされている関数は、以前はWKB引数を受け入れて、WKB値を返していた。現在は、WKB引数またはジオメトリ引数を受け入れて、ジオメトリ値を返すようになっている。
セクション11.13.4.2.2「CreatingGeometryValuesUsingWKBFunctions」 にリストされている関数は、以前はWKB引数を受け入れて、ジオメトリ値を返していた。現在は、WKB引数またはジオメトリ引数を受け入れて、ジオメトリ値を返すようになっている( Bug#38990 )。
・Windowsでは、
myisam_use_mmap
を有効にしてサーバを実行すると、
MyISAM
テーブルが破損した(
Bug#38848
)。
・
CHECKTABLE
は、アップグレードする必要があるMySQL4.0以前のサーバによって
MyISAM
テーブルが作成されたかどうかを正しくチェックしなかった。そのため、MySQL5.1以上へのアップグレード時に問題が生じる可能性があった(
Bug#37631
)。
・同じ DES_ENCRYPT() 値を各行に使用してカラムを更新する UPDATE ステートメントは、実際にはそれぞれの行を異なる値で更新していた( Bug#35087 )。
・共有メモリ接続の読み取り方法と書き込み方法では、非同期クローズイベントを正しく処理できなかった。これにより、クライアントがロックアップしてサーバの応答を待つ可能性があった。たとえば、 mysql_real_query() の呼び出しは、実行したステートメントがサーバ側で中止された場合にクライアント側で永久にブロックされた。バグレポートとパッチについては、ArminSchffmann氏にによるものである( Bug#33899 )。
・ CHECKSUMTABLE は、 KILLQUERY では強制終了できなかった( Bug#33146 )。
・ myisamchk と myisampack は、*ファイル名パターン拡張のサポートを有効にしたライブラリにリンクされていなかった( Bug#29248 )。
・独自の
.ibd
テーブルスペースファイルを持つ
InnoDB
テーブルの場合、
ibufcursorrestorationfails!
という不必要なメッセージがエラーログに書き込まれる可能性があった。この警告は抑制されるようになっている(
Bug#27276
)。
・トランザクションに変更がない場合、 COMMIT はセーブポイントを削除しなかった( Bug#26288 )。
・いくつかのメモリ割り当て関数は、戻り値がout-of-memoryかどうかチェックされていなかった( Bug#25058 )。