[前][次][番号順一覧][スレッド一覧]

mysql:10708

From: "zen kishimoto" <"zen kishimoto" <zen@xxxxxxxxxx>>
Date: Mon, 20 Dec 2004 14:17:17 -0800
Subject: [mysql 10708] MySQL 4.1.8がリリースされました.

MySQL 4.1.8がリリースされました。http://dev.mysql.com/downloads/と
ミラーサイトから、さまざまなプラットフォーム用のバイナリーとソース
をダウンロードできます。全てのミラーサイトがアップデート
されている訳ではありませんので、もしこの版が見つからない場合
は後でチェックするか他のサイトをお試しください。

これは現在のプロダクション・リリースのバグ修正版です。

それぞれのバグの詳細はバグ・データベースhttp://bugs.mysql.com/
を参照してください。

 4.1.8での変更:

   追加および変更された機能

     * ALTER DATABASEについて、データベースの名前はデフォルトのデータベース
に変更を適用する際省くことができる。
     * コンシステント・リードのトランスアクションを開始するため
にSTART TRANSACTION にCONSISTENT SNAPSHOTクローズを追加。
     * mysqldumpに --order-by-primaryを追加し、ダンプファイルのそれぞれ
のテーブルのデータをソート。InnoDBテーブルにロードされるMyISAMテーブル
をダンプする際に有益。このオプションがあるMyISAM テーブルをダンプすると
オプションがないときよりかなり遅い。
     * InnoDB: innodb_status_file=1がセットされていないと、
SHOW INNODB STATUS情報を定期的にテンポラリーファイルに書かない。
     * InnoDB: ALTER TABLEを実行する際、10,000行がコピーされる
毎にコミットする。このために、アボートされたALTER TABLEまたは
OPTIMIZE TABLEから回復するのがかなり早くなる。
     * FULLTEXT インデクスのブロックサイズが2048から1024に変更された。
     * mysqlbinlogに --disable-log-bin オプションを追加。
このオプションを使うと、mysqlbinlogが生成するステートメント用
のバイナリのロギングをオフにできる。つまり、
mysqlbinlog --disable-log-bin <file_name> | mysql はMySQL
のサーバーのバイナリログに何も書き込まない。
     * mysqldumpの --master-data オプションは
コメントなしかコメント付きのCHANGE MASTER TO ステートメントを
生成するのに引数を1か2か取る。デフォルトはバックワード・コンパチの
ために1。
     * mysqldump --single-transaction --master-data はInnoDBの
オンライン(ブロックしない)ダンプを取り、対応するバイナリーログ
のコーディネートをレポートする。このためバックアップをpoint-in-time
リカバリー、ロール・フォーワードまたはリプリケーション・スレーブ
生成に適するようになる。mysqldump Database Backup Programの
8.8章を参照。
     * mysqldump に --lock-all-tables オプションを追加してグローバルのリードロック 

を取得することで全てのテーブルをロック。
     * mysqldumpに --hex-blob オプションを追加して16進法を使用している
バイナリーストリング列ダンプできるように。
     * mysql_hex_string() C API 関数を追加。これはストリング
を16進法でエンコードする。
     * ログでMySQLはBinlog Dumpのリクエストでログのポジションを
プリント。
     * MySQL Cluster特有のコンフィギュレーションをセットするため
の`my.cnf'に [mysql_cluster] セクションを追加。ndb-connectstring 変数
はここに移動。
     * ロールバックを行っている接続はSHOW PROCESSLISTのStateコラム
に"Rolling back"と表示。
     * mysqlbinlogはLOAD DATA INFILEの前に有益なコメント付き
のラインを表示 (thread id, timestamp, server id, など)
--short-formが使われていないのであれば、これは他のクエリに
対してと同様。
     * ndb_mgmd のディフォルト・ポートは
1186に変更 (2200から) 。これはIANAによってMySQL Clusterに正式
にアサインされました。
     * 新しいndb_mgmのコマンド PURGE STALE SESSIONS。ノードがアイディ
をアロケートできるのに出来ないときのワークアランドとして使用。
     * ndb_mgmでの新しいコマンド, CONNECT.
     * ndb エキュスターブルは変更されてMySQLのコマンドラインの
オプションをパースする機能を使用。変更に関しては16.4.5
章のMySQL Cluster Processe用のコマンド・オプションを参照。
     * 上記に続き、全てのコマンドラインのオプションを
`my.cnf' に指定。名前はエクスキュータブルの名前、[ndbd]など。
       [ndb_mgmd], [ndb_mgm], [ndb_restore] etc.
      [ndbd]
      ndb-connectstring=myhost.domain.com:1234
      [ndb_mgm]
      ndb-connectstring=myhost.domain.com:1234
     * `my.cnfに[mysql_cluster] セクションを追加。mysqldを含む
全てのクラスターのエキスターブルは.このセクションをパース。例えば
ndb-connectstring。一度だけ指定すればよい。
     * ノードのアロケーションとディアロケーションの際クラスターのログ
情報イベントを追加。
     * 版のミスマッチの結果で接続拒否のクラスターログ情報イベント
を追加。
     * ポート番号を指定しなくても良いようにconnectstring シンタクスを
拡張。例:ndb-connectstring|connect-string=myhost1,myhost2,myhost3
は正しいconnectstring で接続はディフォルトのポート1186で起こる。
     * 対応するmysqlエラーコードにマップできる
エラーコードようにクリアーのndb エラーメッセージも提供されている。
これはndbストレッジエンジンに関連するエラーが起こった後
SHOW WARNINGSを実行することで得られる。
     * リードの性能(特にblobに)に関して性能を改善[NDB ストレッジエンジンで] 

     * ndb_force_sendとndb_use_exact_countという変数を追加
して性能もチューニングを行う。リストようにmysqlクライアントで'ndb%'
ように表示。setコマンドで変数を変更。
     * ndb_use_transactionsと ndb_autoincrement_prefetch_szの
オプションをセットする変数を追加。

   修理されたバグ

     * InnoDB: MySQL 5.0.3またはそれ以降で生成されたテーブルをオープンできない。 

       (バグ番号 #7089)
     * 外側のクエリによるテンポラリーのテーブルを使い、WHERE クローズ
にサブクエリを置くとき、サブクエリから外のクエリに列を名前で
誤って参照するバグを修正。(バグ番号 #7079)
     * InnoDB: stderrでSHOW INNODB STATUS情報を表示しているとき
にrewind() を呼ばない。
     * 悪意のあるユーザがパケットを加工する(クライアントのライブラリー
に手を入れることで)ことでサーバーをクラッシュすることを可能に
する認証のバグを修理。(バグ番号 #7187)
     * ストリング関数LEFTがクラッシュするバグを修理。これは
この関数がGROUP BYフィールドとして使われるエクスプレッションで
一部の時に起こる。 (バグ番号 #7101)
     * テーブルレベルか列レベルで特権が存在する際、
暗示的に(つまりtime_zone変数をセットするか。CONVERT_TZ()関数を
使用した場合)システム・タイムゾーンのデスクリプション・テーブル
にアクセスしようとすると特権を要求される。(バグ番号 #6765)
     * mysql_stmt_data_seek(stmt,0)はカウンタをリワインドし、
クライント側でバッファーされた行を再びフェッチすることができる。
 (バグ番号 #6996)
     * SHOW CREATE TABLEコマンドでの不十分な特権のチェックを修理。
(バグ番号#7043)
     * 複数バイトの文字セットを使う列でMATCH... AGAINSTで起こる
メモリーの破壊(そしてクラッシュ)を修理。 (Bug  #6269)
     * ALL/SOMEサブクエリでNULL処理を修理(バグ番号 #6247)
     * サブクエリのある複雑なクエリの実行を修理 (バグ番号 #6406,バグ番号
       #6841)
     * 最初の実行の際に内部構造の初期化を修理。 (バグ番号 #6517)
     * MySQL 5.0からフルテキストのインターフェースをポート。
(バグ番号  #6523)
     * サブクエリで空の結果が出たときのNULL の値の処理を修理。
       (バグ番号 #6806)
     * レコードの挿入が一部失敗した際PrCREATE TABLE .. SELECT
クエリをバイナリログに追加するのを阻止。(バグ番号 #6682)
     * INSERT ... SELECT は在りえない "column truncated"警告を
発する。(バグ番号 #6284)
     * 1つしか行のないHEAPテーブルであるクエリで
"Record has changed since last read in table" というエラーメッセージを
修理。(バグ番号 #6748)
     * mysqld_safe は大抵の場合 --no-defaults, --defaults-file,
または--defaults-extra-file を無視してきた。これらのアーギュメントは
考慮されるようになった。そのためインストレーションによっては
どのオプションが mysqldに渡されるか変更があるかもしれない。
     * サーバーは4.0のテーブルでCHAR BINARY と VARCHAR BINARY列
をBINARYとVARBINARYデータタイプを持つと誤って理解していた。
修理後は列の文字セットのバイナリーのコレーションを持つCHARとVARCHAR
と理解。 (これは4.1で生成される新しいテーブルでCHAR BINARYと
VARCHAR BINARYが処理されるのと同様。)
     * ユニークなフルテキスト・インデクスがあるテーブルに複数
行の挿入を行うREPLACE or INSERT ... ON DUPLICATE KEY UPDATE
ステートメントからありもしない"duplicate key" エラーメッセージ
を修理。(バグ番号 #6784)
     * 続くクエリから誤った結果が返還されるSETとDOステートメント
でのサブクエリの実行のバグを修正。 (バグ番号 #6462)
     * サーバーが間違った年の日時の値を受け入れるバグを修理。
ストリングとしてパスされた日時のチェックと同様、MYSQL_TIME
ストラクチャーでパスされた日時の値のチェックを行う。(バグ番号 6266)
     * FULLTEXTインデクスのあるテーブルへのINSERTに関するバグ
を修正。稀に、長さの異なったワードが同じと決定されると
テーブルがコラプトする。これはあるコレーションでは起こりえる。
例えばutf8_general_ciまたはlatin1_german2_ci. (バグ番号 #6265)
     * InnoDB: フォーリン・キーのパーサーがクオートを理解できるように
修理。(バグ番号 #6340)
     * InnoDB: INSERT IGNOREを使用して一度に数行を挿入するのに
INSERT IGNORE を使い、最初の挿入が2重のキー・コリジョンのため
無視された場合、リプリケーション・スレーブのInnoDBはマスターより
1つ大きい値を AUTO_INCREMENTにアサイン。これは
MySQLのリプリケーションを正しく動作させない。(バグ番号 #6287)
     * InnoDB: バグを修理: InnoDB はinnodb_data_file_pathsで
autoextend:max:2000Mのmax仕様を無視。このバグ
は4.1.1で挿入された。
     * InnoDB: バグを修理: innodb_locks_unsafe_for_binlog はまだnext-key
ロックキングを使用(バグ番号 #6747). InnoDBはサーチのタプルがレコードに
完全にマッチした際next-keyロッキングを使用した。この不必要な next-key
ロッキングはinnodb_locks_unsafe_for_binlogオプションが使用された
際は取り除かれた。
     * InnoDB: 2つのハングを修理: FOREIGN KEY 制約はテーブルと
データベースの名前をケースによらなくした。 RENAME TABLE t TO T は
フォーリン・キーの制約があれば、無限ループでハング。他の存在
する名前と同じのフォーリンキーの制約がある名前を生成するために
ALTER TABLE か RENAME TABLEで試すと、dictionary mutexでハングする。
(バグ番号 #3478)
     * STMT_ATTR_UPDATE_MAX_LENGTHがpreparedステートメントにセットされて
いるとき、mysql_stmt_store_result()は数字の列ようにfield->max_lengthを
アップデートする。(Bug#6096)
     * Prepared ステートメントは整数をストリングに変換する際
zerofillを処理できる。
     * mysql_stmt_bind_result()なしで、mysql_stmt_store_result()が
呼ばれた場合に起こるクラッシュを修理。
     * SELECT * FROM t1 NATURAL JOIN t2....を使用するときにprepared
ステートメントで起こるクラッシュを修理。
     * SELECT ...PROCEDUREを使用するときにprepared ステートメントで
のクラッシュを修理。
     * サブクエリを使用するときにprepared ステートメントで
のクラッシュを修理。
     * preparedステートメントと使用するとGROUP_CONCAT(...ORDER BY)
は正しくないソートをする。テーブルが生成された時、CREATE TABLE created_table
はシグナルを発さない。これは他のスレッドの DROP TABLE created_tableを永遠
に待たせることになる。
     * preparedステートメントを実行する際、サーバー警告はリセットされる。
     * IDの比較の性能をアップ (多くのテーブルまたは列が指定されていれば).
     * OPTIMIZE TABLE, REPAIR TABLE, と ANALYZE TABLEはバイナリログ
にエラーコードなしにリプリケートされる。(バグ番号 #5551)
     * LOAD DATA INFILE はreplicate-rewrite-dbオプションと正しく動作。
(バグ番号 #6353)
     * スレーブI/Oスレッドが停止されて開始されたときのみにクラッシュ
するバグを修理。 (バグ番号 #6148)
     * CREATE/ALTER/DROP DATABASEステートメントのセマンティクス
を変更したので、--binlog-do-db と--binlog-ignore-dbを使用した
際CREATE DATABASEのリプリケーションが可能となる。(バグ番号 #6391)
     * 接続につきオープンなトランスアクションがあるが
トランスアクション・テーブルにアップデートがないとき
(例えば、SELECT FOR UPDATEを実行してトランスアクションでないアップデート
を実行したとき)そのアップデートは自動的にトランスアクションをコミット
する。 (InnoDB の行レベルのロックなどを解除する。)(バグ番号 #5714)
     * ネットワークの問題で接続が中断され、ロールバックが起こるとき
ネットワークのエラーコードはBEGIN・ROLLBACKバイナリーログに書き込まれる。
そのため不必要にスレーブが停止する。 (バグ番号 #6522)
     * BEGIN (またはSET AUTOCOMMIT=0), FLUSH TABLES WITH READ
LOCK, トランスアクション・アップデート, COMMIT, FLUSH TABLES WITH READ LOCK
の順番は接続を永久に保ち、またサーバーもハングする。これは
例えばinnobackupスクリプトを数回実行する際に起こる。(バグ番号 #6732)
     * mysqlbinlogはテンポラリーのテーブルに挿入するLOAD DATA INFILEステートメント
の前にSET PSEUDO_THREAD_ID ステートメントをプリントしない。それで
バックアップをリストーした後でローリング・フォワードすると問題
が発生することがある。(バグ番号 #6671)
     * (バグ番号 #6919) ステタス8ノードのクラスタでも2ノードしか示さない。
     * (バグ番号 #6871) DBD 実行が失敗。エラー番号 897 ndbcluster
から'Unknown error code'
     * (バグ番号 #6791) config.iniが正しく
セットされていないとSegmentation ファールト
     * (バグ番号 #6775) 多くのmysqlクライアントを実行するとaccで
落ちる。
     * (バグ番号 #6696) ndb_mgm のコマンドラインのオプション
と実際の動作が違う。
     * (バグ番号 #6684) ndb_restore は誤ったコマンドがきても
エラーメッセージを発さない。
     * (バグ番号 #6677) ndb_mgmはALL CLUSTERLOGでクラッシュ。
     * (バグ番号 #6538) インデクス付きの空のテーブルにmax()
を適用するとエラーコードは変換される。
     * (バグ番号 #6451) テーブル生成に失敗すると除去不可能な
"ghost" テーブルが生成される。
     * (バグ番号 #6435) left joinでおかしな動作
     * (バグ番号 #6426) long pkでアップデートすると動作しない。
     * (バグ番号 #6398) プリマリー・キーでのアップデートがフェイル
     * (バグ番号 #6354) mysqlはNDBがコンパイルされていなくても
--ndbcluster オプションでエラーを発さない。
     * (バグ番号 #6331) INSERT IGNORE .. SELECT はこの後の挿入
を許さなくなる。
     * (バグ番号 #6288) データ・インポートでクラスターのノード
がクラッシュ。
     * (バグ番号 #6031) データベースをドロップするのにDROP DATABASE
を2回実行する必要がある。
     * (バグ番号 #6020) LOCK TABLE + delete はエラー 208を変換
     * (バグ番号 #6018) REPLACEはBLOBsとNDB には正しく動作しない。
     * (バグ番号 #6016) blobsと異なったデータベースはクラッシュが起こる。
     * (バグ番号 #5973) 異なったデータベースに属するndbテーブルが
show tablesで表示される。
     * (バグ番号 #5872) ndbテーブルからblob付きでALTER TABLEで
myisamに変換するとフェイル。
     * (バグ番号 #5844) mysql-test-run でフェールするとNDBプロセスが
残る。
     * (バグ番号 #5824) ndb_mgmでHELP テキストがおかしくなる。
     * (バグ番号 #5786) リストアーの後でDuplicateキーエラー
     * (バグ番号 #5785) 同時のアップデートの際ロックがタイムアウト
     * (バグ番号 #5782) LIMITをndbテーブルと使用すると原因不明のエラー
     * (バグ番号 #5756) ndb_mgmからRESTART ノードはフェイル。
     * 報告されていない[NDB]バグを修理

-- 
Joerg Bruehe, シニア・プロダクション・エンジニア
MySQL AB, www.mysql.com
ドイツ、ベルリン市
---------------------
Zen Kishimoto                        zen@xxxxxxxxxx
IP Devices, Inc.                       (408) 567-9391
2175 De La Cruz Blvd., Suite 10  (801) 720-8847 (FAX)
Santa Clara, CA 95050



[前][次][番号順一覧][スレッド一覧]